J2ME性能優化之--方法和內存的評測
            zxhwolfe  
本文是對J2ME游戲性能優化的初步探討,有不足和錯誤之處還請及時指出。(請聯系zxhwolfe@hotmail.com).
本文目的是使我們的游戲能夠更快更穩定的運行,J2ME的有限處理能力和存儲能力,使得節省設備資源就顯得尤為重要。對代碼進行優化和提速我個人覺得是一件恐怖的事情,嘿嘿。但當你解決代碼的性能瓶頸,使游戲能夠流暢運行又是一件很有成就感的事情。
本文共分兩部分:第一部分介紹我們如何使用工具對方法和內存進行評測;第二部分和大家探討些優化程序的方法。
性能評測所要做的就是,在游戲運行的時候,記錄代碼每一部分對內存和處理器的使用情況。在評測的過程中,使我們知道什么地方內存使用過大,什么原因導致游戲運行變慢。
進行評測我們使用的是Sun公司J2ME Wireless Toolkit(WTK2.2)。
J2ME Wireless Toolkit 提供了若干用于監視應用程序性能的工具。這些工具能夠幫助您調試和優化代碼。
提示:監視功能可能會降低應用程序的執行速度。
方法性能評測:
事件探查器跟蹤應用程序中的每個方法。對某次特定的應用程序運行,事件探查器都計算出每個方法占用的時間,以及調用每個方法的次數。當應用程序結束運行并關閉仿真器后,將彈出事件探查器,您可以從中瀏覽所有的方法調用信息。
要打開事件探查器,請從 KToolbar 菜單中選擇“編輯”>“偏好...”。單擊“監視”選項卡。(即PReferences)如果您想查看所有系統實現方法的配置處理信息,請選擇“顯示系統類”。否則,事件探查器將只顯示包含對應用程序方法調用的系統方法。
要打開時間探查器也可以這樣:%WTK安裝路徑%--〉binà prefs.exe來啟動工具。
啟動工具并選擇“監視”,再勾選上事件探查器顯示應該是這樣:

確定后,即可以。下次啟動手機模擬器運行游戲結束后就會彈出事件探查器,并顯示有關應用程序中所有方法調用的信息。
提示:只要勾選了事件探查器每次模擬器結束的時候都會彈出,所以記得不用及時取消該功能,因為它影響模擬器的速度,內存監視器尤為明顯。不論模擬器是在什么IDE中打開都會彈出方法事件探查器。
 
事件探查器顯示兩種類型的信息:
注-從仿真器中獲得的配置處理值反映不出真實設備上的實際值。
調用圖顯示方法調用的層次結構。調用其他方法的方法顯示為文件夾。雙擊某個方法將其打開,并查看該方法所調用的方法。沒有調用任何其他方法的方法顯示為灰色圓圈。
您可以搜索某個特定類或方法名。單擊“查找...”,并填寫名稱。搜索從調用圖中的當前選擇開始執行,直到最后。如果您想搜索完整的調用圖,請在單擊“查找”按鈕之前選中“環繞”。
在調用圖中單擊不同的節點時,事件探查器的右側就會顯示該節點方法的詳細信息。
事件探查器窗口的右側顯示有關方法的詳細信息。您可以看到方法名、方法調用次數以及仿真器使用該方法所用的時間。執行時間有四種不同的描述方法:
單擊任一列,按照該列進行排序。再次單擊該列,可以在升序和降序之間切換。
右窗格顯示調用圖中當前所選節點中包含的方法。如果您想查看每個方法,請在調用圖中單擊 
關于保存就不多說了。
內存性能評測
許多 MIDP 設備上的內存都不夠用。J2ME Wireless Toolkit 中的內存監視器使您可以方便地檢查應用程序內存的使用情況。您可以查看應用程序使用的內存總量,以及每個對象的內存使用情況詳細列表。
要打開內存監視器,請從 KToolbar 菜單中選擇“編輯”>“偏好...”,單擊“監視”選項卡。選擇“啟用內存監視器”。
下次運行模擬器時,就會彈出內存監視器窗口,顯示一幅隨時間變化的應用程序內存使用情況圖。由于創建的每個對象都被記錄下來,因此內存監視器會使應用程序的啟動速度變慢。最好不要同時勾選兩種監視器。
 
 
您將看到包含以下列的一個表:
單擊任一列標題,按照該列進行排序。
通過從內存監視器窗口菜單中選擇“查看”>“查找...”,可以搜索某個特定的類名。
特別注意內存使用超出當前分配的堆(圖像中紅色虛線表示)的情況。
關于方法和內存的評測就到這里,希望大家在使用中的經驗和心得能夠共同交流。WTK中還有其他好用的功能哦。下一部分討論下j2me的調試方法和優化方法。
本文參考資料:
《J2ME Wireless Toolkit 用戶指南》
《J2ME游戲編程》
www.j2medev.com
(出處:http://m.survivalescaperooms.com)
新聞熱點
疑難解答