cocos2D 性能优化 (新手干货)

cocos2D 性能优化主要就是对于内存的优化
1.纹理大小优化

纹理占用是cocos内存占用的大头,所以优先解决纹理的内存优化。
在TexturePacker软件中,我们可以直接明白的看到纹理占用的内存大小
如:
这是没有优化过的一张纹理内存大小,大小为256KB,

下面是将RGBA8888调整为RGBA4444时纹理内存变化,直接就减少了一半大小

下面是继续将POT模式调整为NPOT模式的内存变化

可以明显看到,纹理大小一下子就约下降至原来的1/3。在效果可以接受的情况下,可以酌情进行上述调整优化。

使用plist好处:
内存问题:OpenGL ES纹理的宽和高都是2次幂数,假设1.png本身是480x320,但是载入内存后,会变成一张512x512的纹理,当我们使用plist把图片拼在一起后,这些浪费的空间就被合理利用起来了。
渲染速度:从OpenGL ES上来说我们应该尽量减少渲染时切换纹理和调用glDrawArray。如果我们是一张张散图,那么每画一个图像都会切换一次纹理并调用一次glDrawArray。而使用了合图,就可以进行批次的渲染。

同时还可以改变图片的大小,或者对大图进行拆分拼接,多用九宫格图片,都可以有效减少纹理大小。

2.资源规范

在我们开发过程中,会用到大量的资源。如果资源管理不规范,会造成很大的内存占用开销。
比如在A文件夹中存放了A场景的资源,在B文件夹中存放了B场景的资源。如果我们A场景中添加一个B文件夹的图片,在跳转到A场景时,不仅加载了A文件夹中纹理,同时也会加载B文件夹中纹理,尽管只是用了B文件夹中的一张图片,但是整个纹理都会加载,这样就会导致很大的内存浪费。
所以我们需要对资源管理进行规范,不同场景都用到的公共的资源需要放到公共文件夹中,大家都可以用。在A场景中只加载A文件夹中的资源,切换场景到B时,加载B中的资源。

3.资源加载释放

场景加载时会加载资源,最好使用分帧加载的方法,减少同一时间内存占用过多。当切换场景时,需要将原来场景的资源释放出去,切换到哪个场景就加载哪个资源,避免无效内存占用。

4.动画优化

帧动画通常占用了很大的内存开销,所以在效果能够接受的情况下,少用或者不用帧动画,用图片或者骨骼动画进行代替。

5.代码优化

创建对象后要记得管理,谁创建谁管理,避免对象没有被销毁导致的内存占用。
做好数据缓存,减少同一帧for循环的查找,减少同一帧频繁创建和释放对象操作;
算法逻辑优化;

6.低配(低内存)手机的特殊处理

低配手机本身拥有的内存就不多,所以当软件占用内存过多时就会造成卡顿甚至崩溃,影响用户体验。
所以在对待低配手机时,可以更大胆的取优化纹理和动画。大图可以适当缩小,动画可以用静态图片代替,尽量保证低配手机能够流畅的运行。

cocos2d 性能优化相关推荐

  1. ios应用相关的性能优化及参考文档

    ios app programming guide: https://developer.apple.com/library/ios/documentation/iphone/conceptual/i ...

  2. 记 一次U3D大型多人在线网游性能优化经验

    就是类似这种网游 -香港明星代言图片 这种老2D网游(十几年前PC端的游戏)现在要把它搬到手机上,因为是纯2D的游戏,采用了大量的图片(动画序列帧),并没有用到 3D的技术,市面上有不少是用Cocos ...

  3. iOS最全性能优化(中)

    续 性能优化(上) 9. 重用和延迟加载(lazy load) Views 更多的view意味着更多的渲染,也就是更多的CPU和内存消耗,对于那种嵌套了很多view在UIScrollView里边的ap ...

  4. iOS app性能优化

    instruments   在iOS上进行性能分析的时候,首先考虑借助instruments这个利器分析出问题出在哪,不要凭空想象,不然你可能把精力花在了1%的问题上,最后发现其实啥都没优化,比如要查 ...

  5. kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势

    陈显铭(山丘) 读完需要 6分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高效 ...

  6. MegEngine推理性能优化

    MegEngine推理性能优化 MegEngine「训练推理一体化」的独特范式,通过静态图优化保证模型精度与训练时一致,无缝导入推理侧,再借助工业验证的高效卷积优化技术,打造深度学习推理侧极致加速方案 ...

  7. asp.net程序性能优化的七个方面

    asp.net程序性能优化的七个方面 一.数据库操作 1.用完马上关闭数据库连接 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器 ...

  8. java criteria限制条数_java架构—Oracle SQL性能优化

    (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先 ...

  9. ab测试nginx Nginx性能优化

    转自:https://www.cnblogs.com/nulige/p/9369700.html 1.性能优化概述 在做性能优化前, 我们需要对如下进行考虑 1.当前系统结构瓶颈 观察指标 压力测试 ...

最新文章

  1. python自动化测试看什么书-Python接口自动化测试
  2. PE学习(一)masm32开发环境和ollyICE使用
  3. 数字后端——布图规划
  4. Fine-tunning适用情况
  5. IDEA2019版最新配置SVN及上传教程-超详细图文详解
  6. linux下的gdb调试
  7. Python的第三方库pyppeteer
  8. Android 内部存储安装apk文件实现
  9. SQLite 的日期时间函数
  10. C-Free 5.0下载和安装教程
  11. Codeforces Round #532(Div. 2) B.Build a Contest
  12. 国科大学习资料--矩阵分析与应用(李保滨)--2016年期末考试试卷
  13. 小程序优购商城项目总结
  14. AWS简介(Amazon Web Services )
  15. 使用 NVIDIA Kaolin Wisp 重建3D场景
  16. printf二进制输出
  17. Linux中阶—远程接入sshsftp(八)
  18. openwrt mesh网络设置
  19. Echarts官方文档
  20. 129、易燃气体的分级

热门文章

  1. 微信好友太少?因为你还没掌握这些微信爆粉方法!(上篇)
  2. toLocaleString千分位
  3. 洞藏酒,心如兰酒!素心如兰,酒如琼露
  4. 测试=====微信发红包
  5. 群批量管理桌面集线器控技术抖音
  6. python抓取网页视频
  7. SQL Server Management Studio (SSMS)单独安装,仅安装连接工具
  8. python函数继承
  9. 沭阳的计算机学校好吗,沭阳初中学校排名
  10. oracle 索引快速全扫描,oracle中的索引扫描