性能优化主要这几个方面进行优化:加载优化,渲染优化,内存优化,CPU优化及一些小技巧。

加载优化

图片资源处理:巧用九宫格拉伸来实现资源得复用,如大的纯色背景图,完全可以使用一张小图来进行拉伸获得;

使用图集:图集有3个好处,

  1.减少文件数量,提升加载速度

  2.减少体积

  3.减少DrawCall

压缩:包括图片,纹理,音频文件的压缩,打包成图集之后,需要进行压缩

Prefab加载优化:

  1.合理拆分预制体:

    1)实现最小单元资源复用

    2)预制体越大消耗时长呈指数上升

  2.开启延迟加载资源:勾选这个选项可以减少prefab的加载耗时,但首次显示的耗时会增加。

   因为由于勾选后,prefab所引用的资源,像图片、音效这些,不会在load时加载,而是会在prefab第一次显示的时候再进行资源的加载。因此需要根据具体的使用环境进行选择。

  3.选择优化策略:

    1)自动调整,creator根据加载方式自动调整优化策略,一般选择这个即可

    2)优化单次创建性能,加载时的耗时会减少很多,但实例化时的耗时会增加

    3)优化多次创建性能,实例化时的耗时将会大大减少,相应的,在load时的耗时会有所增加

场景加载优化:

  1.合理使用预置体构成场景,分批异步进行加载

  2.使用加载界面优化用户体验

  3.开启延迟加载资源

资源批量加载优化:使用分帧加载,第三方库async.eachLimit

裁剪引擎模块:这一步通常在游戏上线前,将不需要的模块删除,减少包体大小

渲染优化

渲染优化,主要针对drawcall的优化:

drawcall即CPU调用图形绘制接口的次数;

  1.使用图集,creator自带了自动合集功能,也可以使用其他第三方工具

  2.资源规划,尽量做到相同界面的资源放在相同得文件夹中,通用资源放在通用目录下,有以下好处

    1)方便打包成合集

    2)减少内存占用,方便使用内存

  3.减少使用系统字体,使用BMFont(2.09之后可以使用字体缓存),减少使用描边,mask,富文本

  4.调整渲染顺序:AABCB,这样顺序,改为AABBC顺序,渲染合批就不会被打断

内存优化

静态资源优化:使用场景的自动释放资源

动态资源优化:

  1.设置自动释放资源

    cc.loader.setAutoRelease         //设置自动释放资源

    cc.loader.setAutoReleaseRecursively    //设置该资源及其资源递归引用到的所有资源

    动态资源的释放需要用户自己设置,设置为自动释放资源之后,切换场景后,该动态资源会自动释放

  2.手动释放资源

    cc.loader.getDependsRecursively     //获取prefab所引用的所有资源

    cc.loader.release(this.prefab);      //释放资源

    一般这样使用:

    cc.loader.setAutoRelease(texture2d,false);  //设置为自动释放,保留这份资源不想释放

    let deps = cc.loader.getDependsRecursively('prefabs/sample');

    let index = deps.indexof(texture2d._uuid);

    if(index !== -1)

      deps.splice(index,1);

    cc.loader.release(deps);

  3.使用对象缓存池

CPU优化

cpu优化主要是对代码逻辑进行优化:

  1.数组的push可以改为arr[arr.lenght] = 0;

  2.for效率,可以参考我的这篇文章 https://www.cnblogs.com/kefeiGame/p/8391859.html

  3.不要使用try-catch or try-finally , eval ,arguments

  4.优化算法

杂项

使用谷歌浏览器的Performance定位CPU问题

使用谷歌浏览器的Memory定位内存问题

转载于:https://www.cnblogs.com/kefeiGame/p/10893035.html

Creator性能优化相关推荐

  1. Cocos Creator 性能优化:DrawCall

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

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

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

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

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

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

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

  5. Cocos Creator ScrollView 性能优化

    9月份 Cocos 技术开发分享会第 2 期在深圳圆满举行,近期我们将对活动干货进行整理,陆续在公众号上发布,没能去到深圳现场的开发者可以关注一下!对于分享的议题有哪些疑惑也欢迎在文末给我们留言! 本 ...

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

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

  7. Oracle数据库管理----性能优化

    https://blog.csdn.net/yzllz001/article/details/54848513 数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我 ...

  8. 面向程序员的数据库访问性能优化法则

    面向程序员的数据库访问性能优化法则 特别说明: 1.   本文只是面对数据库应用开发的程序员,不适合专业 DBA , DBA 在数据库性能优化方面需要了解更多的知识: 2.   本文许多示例及概念是基 ...

  9. 「数据库系列杂谈」数据库访问性能优化

    为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 一.数据库访问优化法则简介 ...

  10. Qt Creator 创建优化的3D场景

    Qt Creator 创建优化的3D场景 创建优化的3D场景 最佳3D场景示例 高景 低景 组合场景 顶点颜色场景 优化3D场景 场景图 资产复杂度 优化CPU性能 优化模型几何 基于用例的3D场景最 ...

最新文章

  1. [Android]开发摇一摇分歧表决器过程
  2. MATLAB某数组间隔取值
  3. Android --- Android Studio 内无法直接运行 main 方法
  4. 英语语法---分词短语详解
  5. boost::test模块带有自定义初始化测试的静态库使用变体
  6. (转载)Unity真机调试
  7. Flink的滚动策略
  8. IOS开发基础之团购案例17-xib和UITableView两种方式实现
  9. mac apache2 php,Mac OSX 之 PHP开发环境Apache2配置
  10. 《算法导论》第二章 入门
  11. python判断_Python中判断一个字符串是否以特定字符前缀开始的函数:startswith()
  12. mac 强制退出程序_Mac OS系统如何强制退出应用程序
  13. 互联网金融的前世、今生和未来-系列三(今生):一场跨界的战争
  14. 一起学Vue自定义组件之拼图小游戏
  15. 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台
  16. Graylog和ELK的简单对比
  17. 微信小程序仿照微信拖动缩放图片和截取头像
  18. 思维升级-如何设计一个秒杀系统?
  19. VS编写简单的网游客户端
  20. 吹得这么牛皮的RPC,到底是个什么鬼?该如何实现呢?

热门文章

  1. 全网首发:终极解决办法:/usr/bin/ld: libcc.so: no symbol version section for versioned symbol `memcpy@GLIBC_2.0‘
  2. TeaVM辛辛苦苦编译出的wasm,浏览器中不能跑
  3. cygwin安装之后,可以复制到其他机器使用
  4. 能跑的东西,尽量继续跑,平稳过渡
  5. 管理感悟:你的能力是有限的
  6. QT拖动界面的鼠标事件
  7. ionic 网站放在服务器,Ionic4 服务器插件-服务器Httpd - Ionic Native
  8. windows下怎么用basename_比较下养殖用铁丝网还是尼龙网,你会怎么选择?
  9. window10运行python弹出商店_Python上架Windows 10应用商店,但主要用于学习,正式项目还...
  10. PHP Sessions