Creator性能優化


性能優化主要這幾個方面進行優化:加載優化,渲染優化,內存優化,CPU優化及一些小技巧。

加載優化

圖片資源處理:巧用九宮格拉伸來實現資源得復用,如大的純色背景圖,完全可以使用一張小圖來進行拉伸獲得;

使用圖集:圖集有3個好處,

  1.減少文件數量,提升加載速度

  2.減少體積

  3.減少DrawCall

壓縮:包括圖片,紋理,音頻文件的壓縮,打包成圖集之后,需要進行壓縮

Prefab加載優化:

  1.合理拆分預制體:

    1)實現最小單元資源復用

    2)預制體越大消耗時長呈指數上升

  2.開啟延遲加載資源:勾選這個選項可以減少prefab的加載耗時,但首次顯示的耗時會增加。

   因為由於勾選后,prefab所引用的資源,像圖片、音效這些,不會在load時加載,而是會在prefab第一次顯示的時候再進行資源的加載。因此需要根據具體的使用環境進行選擇。

  3.選擇優化策略:

    1)自動調整,creator根據加載方式自動調整優化策略,一般選擇這個即可

    2)優化單次創建性能,加載時的耗時會減少很多,但實例化時的耗時會增加

    3)優化多次創建性能,實例化時的耗時將會大大減少,相應的,在load時的耗時會有所增加

場景加載優化:

  1.合理使用預置體構成場景,分批異步進行加載

  2.使用加載界面優化用戶體驗

  3.開啟延遲加載資源

資源批量加載優化:使用分幀加載,第三方庫async.eachLimit

裁剪引擎模塊:這一步通常在游戲上線前,將不需要的模塊刪除,減少包體大小

渲染優化

渲染優化,主要針對drawcall的優化:

drawcall即CPU調用圖形繪制接口的次數;

  1.使用圖集,creator自帶了自動合集功能,也可以使用其他第三方工具

  2.資源規划,盡量做到相同界面的資源放在相同得文件夾中,通用資源放在通用目錄下,有以下好處

    1)方便打包成合集

    2)減少內存占用,方便使用內存

  3.減少使用系統字體,使用BMFont(2.09之后可以使用字體緩存),減少使用描邊,mask,富文本

  4.調整渲染順序:AABCB,這樣順序,改為AABBC順序,渲染合批就不會被打斷

內存優化

靜態資源優化:使用場景的自動釋放資源

動態資源優化:

  1.設置自動釋放資源

    cc.loader.setAutoRelease         //設置自動釋放資源

    cc.loader.setAutoReleaseRecursively    //設置該資源及其資源遞歸引用到的所有資源

    動態資源的釋放需要用戶自己設置,設置為自動釋放資源之后,切換場景后,該動態資源會自動釋放

  2.手動釋放資源

    cc.loader.getDependsRecursively     //獲取prefab所引用的所有資源

    cc.loader.release(this.prefab);      //釋放資源

    一般這樣使用:

    cc.loader.setAutoRelease(texture2d,false);  //設置為自動釋放,保留這份資源不想釋放

    let deps = cc.loader.getDependsRecursively('prefabs/sample');

    let index = deps.indexof(texture2d._uuid);

    if(index !== -1)

      deps.splice(index,1);

    cc.loader.release(deps);

  3.使用對象緩存池

CPU優化

cpu優化主要是對代碼邏輯進行優化:

  1.數組的push可以改為arr[arr.lenght] = 0;

  2.for效率,可以參考我的這篇文章 https://www.cnblogs.com/kefeiGame/p/8391859.html

  3.不要使用try-catch or try-finally , eval ,arguments

  4.優化算法

雜項

使用谷歌瀏覽器的Performance定位CPU問題

使用谷歌瀏覽器的Memory定位內存問題


免責聲明!

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



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