egret性能優化總結


## 來自官方的優化建議

詳見:http://edn.egret.com/cn/article/index/id/287

(1) 少使用Alpha混合。

(2) 顯式停止計時器,讓它們准備好進行垃圾回收。

(3)使用事件偵聽器並在不需要時刪除這些偵聽器。

(4) 在不需要觸摸交互性時顯式禁用觸摸交互性。

(5) 合理使用dispatchEvents 函數。

(6) 盡可能重用對象,建立對象池,而不創建對象並對其執行垃圾回收。

(7)多次調用類屬性時,避免直接使用this.att,建立局部變量賦值。

(8)Event.ENTER_FRAME數量控制。

(9)減少不必要的引用。

(10)減少顯示對象的旋轉縮放。

(11)使用SpriteSheet合並的圖片尺寸要優於單張圖片的總尺寸,尤其是帶透明通道的。

(12)在Http請求中,加載單個文件速度要優於加載多個文件

 

##個人總結

1) 滑動列表盡量使用數據綁定的方式(詳見 eui.Scroller + eui.List 的使用),這樣的做法減少Draw ,最多為選項個數+1

2)顯示移除不需要的面板,不用的盡量removeChild 而不是設置visiable

3) 顯式停止計時器,不要每次都進行 egret.getTimer(),應做為全局數據

4)顯式 刪除對象的所有引用確保被垃圾回收器回收。

5) 盡量不要在使用方法內創建函數,一個函數內不要嵌套另一個函數的定義。

6) 盡量使用let 代替 var 避免閉包導致的BUG

7) 將this賦值給另一個臨時變量self,let self = this

8) 不要在聲明的時候初始化對象,需要賦值基本類型。可選擇使用前初始化。

9) 初始化數組 =[] 比new 效率高 , = {} 比new 效率高

10) exml文件注意通過可視化編輯會產生小數,去掉小數

11)盡可能復用對象,或建立對象池,創建對象時,將對象創建在循環外部並在循環內反復重用。這是許多面向對象編程常用的方法。

12)禁用不必要顯示對象的觸摸交互,默認touchEnabled =true ,需要手動設置為false,在禁用時注意touchChildren = false 才能徹底禁止touch

13) 靜態的UI 使用建議使用cacheAsBitmap減少重繪次數,動態的不要使用該方法

14) 少用mask,特別是Rectangle 每回都要去計算消耗性能較大

15)盡量將配置文件合並到一個大文件里,減少下載次數。在Http請求中,加載單個文件速度要優於加載多個文件。配置文件去掉格式化,利用在線Json格式化工具(如bejson,sojson)處理Json數據。Json數據可以去掉一些不必要的小數和冗長命名

16)TextField減少對於描邊(stroke)的使用,用圖片代替,因為描邊是需要先通過計算邊界渲染

17)配置文件盡量使用key :value的方式,直接通過key取值減少查詢

18)數據查詢多的,使用key:value結構

19) ScrollerBar 的數據,如果單個更改,盡量通過updataItem() 去更改,避免重新綁定數據

 

 

 

轉自 http://blog.csdn.net/wuhaishengxxx/article/details/70495693


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM