小遊戲內存優化與性能優化 / DrawCall

https://docs.cocos2d-x.org/cocos2d-x/v4/zh/advanced_topics/optimizing.html

二、性能優化

目前小遊戲的性能瓶頸大多在JS層面,可以使用Chrome先去profiles性能熱點,然後針對性地去做優化。

這裏給出幾點優化建議:

1、遊戲中頻繁更新的文字,推薦使用BMFont,系統字體會比較消耗性能。

2、優化Drawcall,儘可能減少Drawcall數量。

3、減少Mask組件的使用,該組件會導致遊戲中的Drawcall數量變多。

4、禁用引擎的culling,禁用方法cc.macro.ENABLE_CULLING = false。

5、如果使用物理引擎,可以把物理引擎的step間隔調大。

6、優化節點樹,減少節點數量。

7、場景中不要掛載過多的Prefab,可適當將一些Prefab變成動態加載的。

三、包體優化

因爲微信小遊戲對於包體有4M的限制,最近纔剛開始升到8M,但是必須要分包,而且每一個分包的大小還是不能超過4M。

下面給出一些優化建議:

1、首包中不要包含過多的資源,如果一定要包含,請務必壓縮。對於背景圖片可以使用JPG,PNG圖片可以使用png8進行壓縮。

2、代碼必須使用uglify進行壓縮,尤其是第三方庫,遊戲代碼如果使用release構建引擎有做uglify。如果想進一步壓縮代碼體積,需要考慮使用Google Closure Compiler進行高級壓縮。

3、不需要動態加載的圖片資源不要放到resources目錄,放到此目錄的資源在構建導出的時候,會生成資源映射關係到Settings.js中,會導致該Settings.js文件變大。另外爲了防止緩存問題,需要使用md5,此時Settings.js文件會進一步膨脹。過氣的活動Prefab也可以移出resources目錄,所以定期資源清理也是必要的。

4、Settings.js文件優化,可以自己寫腳本把md5Map裏面的rawAssets的md5映射存到原本的rawAssets中,然後在boot.js裏面還原md5Map即可。優化之後的Settings.js長這個樣子:
在這裏插入圖片描述

boot.js裏面還原md5AssetMap的的代碼:
在這裏插入圖片描述
5、一定要使用release模式構建,這種方式構建出來的json資源會壓縮,Settings.js也會優化。

6、對於引擎不使用的模塊進行裁剪,這個可以減少引擎大小。

1 面試問: why2張不同合圖 會打斷渲染 / 渲染機制:中命令都有啥
2 在這裏插入圖片描述

不要使用系統字體作爲您的遊戲得分計數器,它很慢的,嘗試使用 TTF 或 BMFont,BMFont 更快.
(備註:BMFont > TTF, 因爲位圖生成文字速度更快,能合併DC )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章