cocosCreator性能优化

注意:主要针对的是js,ts语言

  • 逻辑优化
  1. 数组排序时可以使用自带的 sort() 方法。
  2. 数组本地存储时可以考虑联合字典进行使用,方便查找。
  3. 当同一类数据较多时,在传输时可以进行数据堆叠,减少查找的时候计算较大。
  4. 减少不必要的console.log() 输出。
  5. 避免在update里面做耗时操作(比如:读写文件、播放音效)。
  6. 大量预制体prefab实例化,可以分帧创建,避免顿卡。
  7. 功能实现尽可能使用最优方案,减少不必要的逻辑。
  8. 对于背包等需要生成大量预制体的界面可以引入对象池
  9. 对于经常出现,展示的节点可以进行控制显示隐藏而不是删除和生成。
  10. 本地数据存储时,可以更改数据结构,用空间换时间

  • 性能优化
  1. DrawCall优化
  1. .将碎图打图集,同一图集的资源尽可能放在一起,单个图集不宜过大。
  2. .减少richText的使用。
  3. .文字可以考虑使用美术字来代替(比较简单的或者无需经常修改的)。
  4. 进行label合并,达到减少label的数量
  1. 资源包体优化
  1. .去掉多余的资源以及代码,减少代码逻辑的重复性。
  2. .背景图等可使用jpg图片。
  3. .面对较大图集时,可以打图集时缩小倍数打图集再放大使用。
  4. .png图片进行压缩,纹理单一图片缩小后通过九宫格使用,png适当降低品质。
  5. .构建发布时,可以将未曾使用的功能模块勾选掉。
  6. .动画如果帧动画内存过多可以改成骨骼动画。
  1. 内存优化
  1. .静态资源的内存管理:静态资源指的是场景中直接或间接引用到的所有资源(脚本动态加载的资源不算在内)。在场景资源的属性编辑器中可以勾选“自动释放资源”选项,从而在切换场景时,会自动将旧场景使用的静态资源释放掉,从而节省内存的占用。
  2. .动态资源统一使用cc.loader进行资源的加载以及管理。
  3. 优化双份纹理 

这里面的原理是,当Creator使用DOM的Image对象去加载一个图片资源的时候,微信底层的引擎会解码图片数据,同时往GPU上传一份纹理,然后引擎的Sprite在渲染的时候会使用这个DOM Image再生成一份GPU纹理并上传,导致GPU里面存在双份纹理。使用 Image.scr = '' 可以释放掉GPU里面多出来的一份纹理,同时也会释放CPU端解码的纹理内存。所以,基本上对 Image对象调用了 src = '' 这个操作,这个Image对象占用的内存就释放干净了。

4.使用对象池
5.UI不删除进行隐藏

  1. 优化资源释放 :对于二级弹框和场景资源释放,可以使用cc.loader.release接口配合场景的“自动释放”属性来实现 。

  1. 其它优化
  1. .减少Mask、LabelOutLine组件的使用。
  2. .优化节点树,尽量减少节点数量,防止单一预制体过于复杂。
  3. .控制游戏帧率。
  4. .单功能尽可能使用自身的图集,不要交叉使用。
  5. .部分预制体可以勾选延迟加载,减少预制体加载耗时,但首次加载速度降低,合理使用。
  6. .复杂逻辑不要放入onLoad()中,放入start()中,可以加快预制体的加载速度。

参考网址:

CocosCreator 常用优化点_cocos creator资源优化-CSDN博客

https://www.cnblogs.com/xyptechnology/p/13256006.html

CocosCreator内存与性能优化 - 程序员大本营

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值