cocos 性能优化方案求助 (Cocos性能优化)

一.内存优化1.内存泄漏在最近的项目中使用了C11的智能指针,经过一年的使用证明这是不是一个成功的选择。

虽然已经没了自己管理的烦躁,但是增加了内存泄漏的几率。

毕竟不是所有人都能完全理解和掌握shared_ptr的使用。

建议使用cocos2dx自带的轻量级智能指针,采用了引用计数,并且没有了C11智能指针循环引用及其他使用容易导致引用计数异常的问题。

2.缓存(材质缓存,精灵帧缓存)管理这里必须要引入过渡场景,用于removeunused的缓存,然后预加载下一个场景需要使用的资源。

并且cocos2dx提供了api可以查看内存中所有的缓存,做为开发必须能完全熟知内存中的这些缓存,能及时判断哪些材质是多余的。

这里要多提的一点是,不使用jpg,android使用pkm,ios使用pvr是非常有必要的。

特别对于8000*8000超大地图。

3.高性能对象池传统对象池只有一个list保存所有对象,每次使用循环遍历查找未使用的对象。

这里的优化是新增一个队列保存所有可使用的对象。

每次对象使用完进行push_front的操作,每次使用通过pop_front获取。

二优化1.近似数学函数开方、三角函数近似替换算法,计算两点间的距离(曼哈顿距离、牛顿迭代或者使用平方数值做比较),位移运算(针对频繁的乘除2的n次幂)等。

2.算法在算法的选择上其实渗透在我们的每一个即使非常小的功能模块,对于不是专门研究算法的我们,算法更多是一种意识。

拒绝所有的时间复杂度O(n*n)的操作,永不高估CPU的计算性能,在现有的操作上力求更低的计算量。

然后有的放矢的去选择适合自己项目的算法。

3.分帧分帧是比较坏的情况,因为这时候优化可能到了末尾。

确实有一些cpu密集型的计算需要分帧甚至开线程来解决了。

PS:空间换时间。

其实上面三条包括我的高性能的高斯模糊算法那篇文章,基本上对于cpu的优化核心都是空间换时间。

三优化(Drawcall优化)1.超大图的切片切片太小对于drawcall是非常有影响的,目前使用最大化切片2048*2048,并且图片使用压缩格式使用存在于缓存中。

2.合图(多摄像机场景)对于摄像机比较多的场景,由于底层是遍历摄像机,每个摄像机执行一次场景的全部绘制。

所以在合图的时候需要按照摄像机来分层合图,不要把不同摄像机的图片合到一起。

做为开发要能够根据看到的场景预估drawcall数量,在判断出异常的时候分步优化层级drawcall数量。

cocos 性能优化方案求助 (Cocos性能优化)

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读