5.4.2. Các nguyên tắc tối ưu hóa việc sử dụng bộ nhớ :
- Sử dụng càng ít đối tượng càng tốt và chỉ cấp phát bộ nhớ khi cần thiết.
- Đối với các đối tượng khơng cịn cần được sử dụng nữa, nên gán cho chúng
giá trị null để giúp garbage collector nhận diện được vùng nhớ khơng cịn được sử dụng nữa để thu hồi.
- Bộ nhớ của các thiết bị di động rất hạn chế, do vậy, trong thiết kế chương
trình, chúng ta nên tránh việc xây dựng các hàm có nhu cầu được cấp phát khối
lượng bộ nhớ lớn.
- Trong J2ME, việc thu hồi bộ nhớ khơng cịn được sử dụng được thực hiện
thông qua garbage collector. Tuy nhiên, khi nào việc thu dọn này được thực hiện là
do người lập trình tự quyết định. Mặt khác, việc thực thi hàm thu hồi bộ nhớ
giải phóng bộ nhớ nếu khơng cần sử dụng nữa và chỉ nên gọi chức năng thu hồi bộ nhớ khi cần thiết.
- Trong ngôn ngữ Java, chúng ta có thể nối nhiều chuỗi ký tự chỉ đơn giản
bằng cách thực hiện tốn tử “+” như ví dụ sau :
public String indent (String line, int spaces) {
String strOut = “”;
for (int i=0;i<spaces;i++) { strOut += “ ”; } return strOut; }
Tuy nhiên, xét về hiệu suất hoạt động, cách làm như vậy sẽ không tốt bởi vì
mỗi khi thực hiện việc nối 2 chuỗi ký tự (kiểu String), Java sẽ tạo một đối tượng
kiểu StringBuffer, sau đó gọi thực hiện phương thức append của đối tượng này 2
lần để nối 2 chuỗi ký tự lại và cuối cùng, thực hiện phương thức toString() để tạo
đối tượng kiểu String rồi trả về kết quả. Nếu việc nối chuỗi được thực hiện nhiều
lần, đặc biệt là trong một vòng lặp sẽ dẫn đến việc tạo rất nhiều đối tượng kiểu
String và StringBuffer. Kết quả là khiến cho chương trình sử dụng và tạo nhiều rác trong bộ nhớ, mặt khác sẽ làm tăng thời gian xử lý của chương trình do phải mất nhiều thời gian khởi tạo các đối tượng. Cải tiến đoạn chương trình trên như sau :
public String indent (String line, int spaces) {
StringBuffer out = new StringBuffer(); for (int i=0;i<spaces;i++)
{
out.append(‘ ’); }
return out.toString(); }
Chương 6 : THỬ NGHIỆM – HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG
6.1. Cách cài đặt chương trình trên máy ảo :
Quá trình thử nghiệm được thực hiện trên 4 loại máy ảo : máy ảo chuẩn của Sun, máy ảo Nokia, Sony Ericsson, Samsung và Siemens (xem giới thiệu về các máy ảo này trong phần phụ lục B).
6.1.1. Trình giả lập Sony Ericsson :
Phiên bản mới nhất được hãng Sony Ericsson cung cấp miễn phí hiện nay là
bản 2.2.0. Tập tin cài đặt semc_j2me_sdk_2_2_0.exe có dung lượng là 53,4 MB. Việc cài đặt được tiến hành như các chương trình bình thường.
Sau khi cài đặt xong, gọi thực thi chương trình như sau :
Start Menu\Sony Ericsson\WTK2\Run MIDP Application
Trên hộp thoại hiện ra, chọn đường dẫn đến tập tin HoChiMinhCity_Map.jad