cocos 性能优化
cocos 性能优化分为四部分:渲染优化、包体优化、内存优化和cpu优化首先是渲染优化1、合图静态合图:使用Texture Packer或者自动图集,将碎图打包到一张图集里动态合图:在精灵资源的属性检查器中勾选packable(默认勾选)才能开启动态合图,小游戏和原生平台默认关闭动态合图,需要手动开启。2、节点的显示和隐藏少用active的true或者false,active的使用会重新渲染节点数
cocos 性能优化分为四部分:渲染优化、包体优化、内存优化和cpu优化
首先是渲染优化
1、合图
静态合图:使用Texture Packer或者自动图集,将碎图打包到一张图集里
动态合图:在精灵资源的属性检查器中勾选packable(默认勾选)才能开启动态合图,小游戏和原生平台默认关闭动态合图,需要手动开启。
2、节点的显示和隐藏 少用active的true或者false,active的使用会重新渲染节点数,可以用位置或者透明度来代替。
3、减少draw call的次数。draw call是一种行为指令,即cpu调用图形api,命令gpu进行图形绘制。由于draw call带来的cpu 和gpu的渲染状态切换消耗,往往需要通过批次合并来降低draw call的调用次数。引擎默认会自动合批,但是需要保证相邻节点的渲染状态是相同,避免打断合批的情况,包括纹理的状态(相邻的渲染节点使用的图片不是同一张-->图集的作用)、混合模式(blend mode)、模板状态( Mask、Graphics、ScrollView),延申一下(TiledMap、Spine 和 DragonBones 这三个中间件组件是遵循自己的内部合批机制)
了解的打断合批的情况,我们就可以给出解决方案了。
1、使用静态合图,将相邻的渲染节点用图打包到同一个图集里。
2、尽量少修改混合模式。
3、动态变化的字体使用fnt字体。
4、会打断合批的渲染组件放到节点的最后面。
包体的优化
1、图片
尽量少使用大图,可以用拼接的方式或者九宫格的方式,图片的格式 jpg占用的内存比png占用的小,可以用图片压缩工具对图片进行压缩 降低分辨率。
2、声音
声音格式 占用内存 mp3<ogg<wav
3、引擎代码
没有使用的到模块可以去掉
内存优化
1、静态资源优化,自动释放场景资源,在场景中勾选自动释放资源选项,当场景跳转时自动释放资源。
2、动态资源优化,引用计数来管理内存,创建时计数为1,调用retain计数加1,release计数减1,为0时释放内存。常见的addChild和removeChild会分别加1减1。autoRelease把节点加到自动释放池中,在当前帧结束时,池中的节点会调用一次release,起到延时自动释放的作用。
CPU优化
1、代码优化,
2、游戏帧率优化

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!
更多推荐
所有评论(0)