cocos creator 性能优化交流贴 v1.x

性能优化,路漫漫其修远兮,将持续更新自己在优化的心得,一起学习,共同进步

2赞

占个楼

性能优化,讲究去除峰值,尽量平滑,不停取舍(内存换性能,性能换内存等)

1赞

合并DrawCall:

    简单来讲,使用同一图集的sprite在层级面板中 按顺序排列时,此时会使用同一个材质,触发DrawCall合并,此时只会产生一个DC,这个就是批处理过程了若顺序中插入了其他使用材质的渲染组件,则会打断此次批处理

前排坐等大佬

优化方式之 界面不使用active,而是将它移除屏幕外 , pass ,只要使用了widget 做了适配的(适配的参照物一般都是会选择canvas),已经无法移出屏幕外了,所以移出屏幕外,依靠CPU的粗粒度剔除(culling)有点不现实了,仅供参考,有好方案可以留言噢

mark一下

active的确有点耗性能,应该是因为遍历了所有节点的所有组件,触发onDisable之类的逻辑。 但是你的方案是移出屏幕外,那不释放么?

这种方案只是对于常驻界面来讲,或者说常用界面,不是使用完毕就直接释放的那种界面,那么对于隐藏方式的研究,移出屏幕外呢,那么只有一个移动,顶点数据提交也会在第一步的粗粒度剔除就移除掉,那么这种方式对于隐藏的瞬时峰值提升可能会比较好,晚上会做一次详细的测试,列个表格数据对比这几种隐藏方式的性能损耗,然后就是自己不怎么写东西,所以在对于问题的描述上有所欠缺,抱歉啦,下面的会更加严谨一些,感谢回复

节点的隐藏显示也会消耗性能吗??? :sweat::sweat: 我一直以为创建释放会消耗,现在都是隐藏显示了. :cry:

Label组件也会打断batch

占个楼,active耗性能在原生平台表现特别明显,来回切界面超级卡,最后也是用移除屏幕来解决。据引擎组大大说,2.x的active会得到改善

1赞

mark

升级 2.0 呀

我也觉得active比较消耗性能,可是也没有setVisible(false)函数··············