- Ch nên t p trung t i u các thao tác có s l ng chu k x lý l n.
- H u h t các hàm trong th vi n đ h a c p th p ví d nh các hàm v đ i t ng đ h a c s (đ ng th ng, hình ch nh t, cung, ellipse…), các hàm tô màu đ u s d ng r t nhi u chu k máy, vì v y, c n h n ch s l n g i các hàm này.
- S d ng hàm setClip(…) đ h n ch vùng c n v . - em các tính toán ra bên ngoài vòng l p n u có th .
- N u không làm nh h ng đ n thi t k ch ng trình, cài đ t các ph ng
th c d ng static final s giúp ph ng th c đ c th c hi n nhanh h n. Tránh s d ng ph ng th c synchronized, ph ng th c này ch m do ph i lock nh ng đ i t ng c n thi t.
synchronized ch m nh t interface ch m
final nhanh
static nhanh nh t
- Vi c kh i t o m t đ i t ng inner class m t g p đôi th i gian so v i vi c kh i t o m t đ i t ng c a l p th ng.
- i v i các hàm th ng xuyên đ c s d ng, cài đ t sao cho vi c truy n tham s cho hàm càng ít càng t t.
- H n ch vi c tách m t hàm l n thành nhi u hàm nh vì khi chia thành nhi u hàm nh s khi n cho l p t ng kích th c, đ ng th i s ph i m t th i gian cho vi c truy n tham s gi a các hàm m c dù cách làm này giúp chúng ta d dàng h n trong công tác b o trì. - CPU c a máy tính c ng nh c a các thi t b di đ ng th c hi n vi c so sánh m t s v i s 0 nhanh h n so v i các s khác 0. Trong các vòng l p nên t n d ng đi u này b ng các đ m ng c các bi n đ m. Thông th ng, chúng ta cài đ t vòng l p nh sau :
for (int i=0; i<n; i++) {
}
Nh ng, s nhanh h n n u chúng ta cài đ t ng c l i :
for (int i=n; --i>=0; ) {
……. }
- Các phép toán trên bit có t c đ r t cao, vì v y, nên s d ng các phép toán d ch bit (shift left, shift right) thay cho phép toán nhân, chia v i các s là l y th a c a 2.
- Trong ngôn ng Java, vi c truy xu t m t ph n t c a m ng ch m h n r t nhi u so v i ngôn ng C. M i khi chúng ta truy xu t m t ph n t , Java đ u ki m tra ch s đ a vào có h p l hay không. N u ch s này nh h n 0 ho c l n h n ch s c a ph n t cu i thì Java s thông báo ngo i l
ArrayIndexOutOfBoundsException.
Nh v y, m t ph n t trong m ng n u đ c truy xu t nhi u l n
- Khi c n sao chép m ng, nên s d ng hàm sao chép do J2ME cung c p s n s nhanh h n r t nhi u so v i vi c s d ng vòng l p. Cú pháp nh sau : System.arraycopy(Object, int, Object, int, int) - Bi n c c b khai báo trong thân hàm đ c truy xu t nhanh h n bi n đ c khai báo m c instance. N u chúng ta c n th c hi n nhi u phép toán v i các bi n đ c khai báo m c instance nh ví d sau :
public class Foo {
private int[] array;
...
public void foo()
{
for (int i=array.length; --i ; )
{
array[i] = i*2;
}
} }
o n ch ng trình nh trên khi th c hi n s không nhanh b ng
đo n ch ng trình sau :
public class Foo {
private int[] array;
...
public void foo()
{
int[] myArray = array;
for (int i = myArray .length; --i ; )
{
myArray [i] = i*2;
}
} }
- Vi c kh i t o m t đ i t ng c ng m t nhi u th i gian. Do v y, n u có th đ c, chúng ta nên t n d ng m t đ i t ng s n có r i c p nh t l i các giá tr , các thu c tính c a chúng thay vì t o m t
đ i t ng m i. - Phép toán chia th c hi n ch m h n so v i phép toán nhân, vì th , n u c n ph i chia nhi u l n cho cùng m t s , chúng ta có th tính ngh ch đ o c a s chia r i dùng k t qu tìm
đ c nhân v i s b chia.
- Nh ng đo n ch ng trình có khai báo try/catch đ x lý các Exception c ng có t c đ r t ch m. Do đó, n u không b b t bu c ph i khai báo nh v y, chúng ta không nên s d ng chúng trong ch ng trình.