看了很多的博客,大略的总结了一下,推荐去看原文。

参考以下博客:
博客1
博客2
博客3

cocos creator 的性能优化这里分为四个方向去优化,包体优化,渲染优化,内存优化和cpu优化。

****点击链接查看性能合集百度脑图

1.包体优化,一个cocos creator 包包括资源和代码两部分,其中资源占的内存更多。

(1)图片:
  • 不使用大图,如果是大背景图可以通过拼接或者是九宫格的方式,如果一张图超过2048*2048,就会导致在微信平台和小游戏平台出错,小游戏平台在加载的时候无法进入界面。
  • 图片的格式,格式占的内存也不一样,jpg>png
  • 图片分辨率,在我们创建项目的时候可以先通过降低图片的分辨率,再使用。可用在线工具:https://tinify.cn/
  • 图片纹理压缩,在资源管理器选择图片(图集),然后在属性检查管理器中勾选useCompressTexture
(2)声音
  • 声音格式,wav>ogg>mp3
(3)字体
  • cocos支持三种字体:系统字体(label),动态字体(TTF)和位图字体(BMFont),系统字体使用cocos系统字体渲染,在渲染时候会打断draw call 的合批,建议使用位图字体,然后和ui一起打包成图集,可降低draw call。
(4)预制体
  • 预制体使用对象池,大量的创建和销毁会导致性能很低。
  • 预制体拆分。
  • 异步创建预制体,在加载界面的时候就创建大量的预制体会加载很慢,可以使用异步加载的方式创建
//优化前:
for(let i = 0;i<=100;i++){let node = cc.instamtiate(this.prefab);node.parent = this.node}
//优化后(异步加载):
for(let i = 0;i<=100;i++){setTimeout(()=>{let node = cc.instamtiate(this.prefab);node.parent = this.node},i*100)}

2.代码,代码有两部分,引擎代码和业务逻辑代码(自己写的代码)

(1)引擎代码,可以在功能裁剪中去掉没有用到的模块,减少代码量。

(2)业务逻辑代码,这个只能自己优化了

2.渲染优化

(1)合图
  • 静态合图(Auto Atlas):自动图集资源,把碎图打包到一张大图上,减少draw call的绘制,具体功能和Texture Packer相似,在资源管理器中创建Auto Atlas即可创建一张图集
  • 动态合图(Dynamic Atlas):在精灵资源的属性检查器中勾选Packable才能开启动态合图,小游戏和原生平台默认关闭动态合图,需要手动开启
(2)少用active = true/false,active的使用要重新渲染节点树,可用设置ui位置或者透明度代替
(3)节点树批处理尽量不要背打断,系统字体label节点会打断draw call的渲染,可以用位图字体替代,并且把位图字体和ui一起打包到图集,可以减少draw call

3.内存优化

(1)静态资源优化,即自动释放场景资源,在项目中场景越来越多,我们把暂时不用的场景都自动释放,如一些二级场景。在资源管理器中选中场景,属性检查器中有自动释放资源选项,建议场景都勾选自动释放资源(除了经常使用的场景)

(2)2.动态资源,只有动态加载的图片才放在resources文件夹中,减少setting文件夹的大小

4.cpu优化

(1)代码的优化
  • arr[arr.length] = 0代替arr.push(0)
  • 相比其他循环少用for…in…循环
  • 不推荐使用arguments
  • 全局变量转换成局部变量使用
(2)游戏帧率的优化
  • 渲染帧的降低
//只能设置15,30,60。3种帧率
Game.setFrameRate(frameRate: number | string) :  void
Game.setFrameRate(30)
  • 物理帧的降低,降低物理步长和各个属性的迭代次数,都会降低物理的检测频率,所以会更有可能发生刚体穿透的情况,使用时需要考虑到这个情况。
    const system = PhysicsSystem2D.instance;// 物理步长,默认 fixedTimeStep 是 1/60
system.fixedTimeStep = 1/30;// 每次更新物理系统处理速度的迭代次数,默认为 10
system.velocityIterations = 8;// 每次更新物理系统处理位置的迭代次数,默认为 10
system.positionIterations = 8;    //降低物理帧,优化物理效果phsic.enabledAccumulator = true;cc.PhysicsManager.FIXED_TIME_STEP = 1 / 30;//默认值为1/60

cocos creator性能优化合集相关推荐

  1. nginx重点优化合集一

    nginx特色 支持高并发 资源消耗少 负载均衡 缓存功能 支持异步网络 nginx虚拟主机 worker_processes  1; events { worker_connections  102 ...

  2. Cocos Creator 性能优化:DrawCall

    Cocos Creator 性能优化:DrawCall(全面!) title: Cocos Creator 性能优化:DrawCall 前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标 ...

  3. Cocos Creator 性能调优:如何减少 2D/3D DrawCall?

    Cocos 中文社区第4期有奖征稿活动火热进行中,iWatch SE.坚果投影仪等丰厚奖品等你来拿,点击文末[阅读原文]进入社区专贴,把你的聪明才智向我们砸来吧! 点击查看活动详情 本文即为此次社区征 ...

  4. Cocos Creator 性能调优优化集锦

    01 为什么要做性能优化? 性能:是一种优秀的能力.唤醒快.运行持久.稳定. 这种能力在游戏上能让你的用户感觉很爽,表征表现为加载快.手机不发热.运行流畅.不卡顿. 所以,性能优化的终极目标是让你的用 ...

  5. Cocos Creator性能优化---DrawCall

    前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现. 无论是 Cocos Creator.Unity.Unreal 还是其他游戏引擎,只要说到游戏性能优化,D ...

  6. Cocos Creator性能优化-2-包体优化

    对于Cocos Creator包体优化可分为 1.项目设置 1.模块设置 通过去除无需使用的模块来减少包体 (微信小游戏还支持引擎插件可在打包时勾选) 2.resources 总而言之不需要动态加载的 ...

  7. 【MATLAB第1期】LSTM/GRU网络回归/分类预测改进与优化合集(含录屏操作,持续更新)

    文章目录 一.智能进化算法-LSTM(优化超参数) 1.金枪鱼算法TSO-LSTM--案例1 2.孔雀优化算法(POA)-LSTM--案例1 3.猎人优化算法(HPO)-LSTM--案例1 4.人工大 ...

  8. Cocos Creator 性能优化——对象池

    ​对于游戏开发人员来说,性能优化是一个永远绕不过的话题,极致的性能是我们毕生的追求,今天就来带大家学习一下性能优化方法之一--「对象池」. 为什么要使用对象池? 在开始之前要先弄明白为什么要使用对象池 ...

  9. Cocos Creator 3.x 优量汇/广点通 android

    cocos creator 接入 优量汇 (以前叫广点通): https://adnet.qq.com/http://xn--4oqq81ac4mc4rhev 本次接入三种广告: 横幅广告 (bann ...

  10. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》...

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

最新文章

  1. yolov3 pytorch错误集合
  2. 自己写的一个BMP转PNG工具BMP2PNGen
  3. vim中taglist使用
  4. weblogic 安装教程
  5. 编译原理(三)之语义分析
  6. MTK 驱动(65)---Android 多点触摸协议(Multi-touch Protocol)
  7. 使用ActiveMQ实现简易聊天功能
  8. linux进程操作日志文件,我使用过的Linux命令之tailf - 跟踪日志文件/更好的tail -f版本...
  9. 国美在线php面试题,国美销售专员的面试考题
  10. php公众号关注自动回复内容,微信公众号自动回复内容大全集锦
  11. 遵义二十一中2021高考成绩查询入口,遵义第二十一中学2021年招生简章
  12. 如何看待学术圈的内卷化
  13. OpenJudge_P7833 幂的末尾
  14. Word文档删除最后一页空白页的超强方法(亲测有效)
  15. 【数据库实验】实验四 基于嵌入SQL的综合应用编程(基于QSqlTableModel实现)
  16. 惠普电脑u盘重装系统步骤_惠普笔记本u盘重装系统|惠普笔记本怎么用u盘重装系统...
  17. 扫雷超详解(可展开一片空白)
  18. 风向风速图将Series中的风向风速数据data和xAxis中的时间data一一对应
  19. FT4232 USB-SPI python调试笔记
  20. python圆周率后100位_Python实现计算圆周率π的值到任意位的方法示例

热门文章

  1. PS教程:利用灰度蒙版实现无级调节
  2. 计算机无法安装cad怎么办,AutoCAD2014安装失败显示某些产品无法安装怎么办
  3. Iphone各个型号机型的详细参数,尺寸和dpr以及像素
  4. Trakr:自制力差人的计数应用
  5. 【汇编】intel core cpu中常用的寄存器
  6. 抖音书单号怎么取名,抖音书单号大概多久能起来
  7. Iptables 控制源IP和目的IP来完成访问控制
  8. 群晖套件中心没有docker_非Docker方法安装qBittorrent,舒心玩转PT
  9. 十三水牌型 图片_十三水三分天下是什么 十三水三分天下牌型详解
  10. Lora sx1278+stm32(ADC录音)+SPPEX音频压缩 数字对讲机