CocosCreator 游戏开发性能优化 —— ScrollView/ListView

在这里插入图片描述

个人 github

优化说明

scrollView 的卡顿多数都是因为在创建多个 item 时,瞬间进行了多次 GPU 绘制,drawCall 暴涨,在一些内存较小性能较差的平台或者机型上容易出现卡顿。
所以我们需要进行 scrollView 优化。

1、复用 item

复用 item 的方法是解决 ScrollView 卡顿的根本方法,主要的代码是(参考案例是官方范例合集中的 ListView 场景):
在这里插入图片描述

2、sprite 和 label 层级不要混乱

为什么这么做的原因是因为在2.0.7之前 label 是会打断合并批次渲染的,会导致 dc 增加,并且 label 没有合并批次渲染这个能力,而升级到2.0.7之后就得到了这两个方面的优化了。如果是2.0.7之前的版本的话,建议层级这样放
在这里插入图片描述
mask 也不能合并 drawCall
目前骨骼动画也会打断 drawCall (这个有计划在后续版本优化)

3、在2.1.1版本之前,label 组件有一个内存泄漏问题,使用2.1.1版本之前的项目可以手动合并PR。

https://github.com/cocos-creator/engine/pull/4220

4、label 选择自动缩放模式的时候,建议不要勾选自动换行

在这里插入图片描述

目前引擎是默认勾选自动换行的,这个会导致label在添加到场景上的耗时增加,建议在编辑器中给 label 组件手动换行之再进行实例化。

5、文本缓存模式

在这里插入图片描述
这个是升级到2.0.9才有的功能。能有效解决小游戏平台上文本使用卡顿的问题。 。
引擎默认不开启。

6、cc.macro. CLEANUP_IMAGE_CACHE = true;

这个选项能够开启纹理自动释放,对于 cc.loader.release 释放贴图资源不理想的项目可以启用。目前已知是在原生平台上存在释放 image_cache 不够彻底的问题,会在后续版本修复。

7、cc.sys. garbageCollect()。

加速垃圾回收。

8、资源上的优化

一、图片压缩

https://tinypng.com/

二、使用九宫格贴图:

https://docs.cocos.com/creator/manual/zh/ui/sliced-sprite.html

三、使用压缩纹理(这个需要2.1版本):

https://docs.cocos.com/creator/2.1/manual/zh/asset-workflow/compress-texture.html?h=压缩纹理

猜你喜欢

转载自blog.csdn.net/qq_34121784/article/details/90056915
今日推荐