Creator性能优化
性能优化主要这几个方面进行优化:加载优化,渲染优化,内存优化,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性能优化相关推荐
- Cocos Creator 性能优化:DrawCall
Cocos Creator 性能优化:DrawCall(全面!) title: Cocos Creator 性能优化:DrawCall 前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标 ...
- Cocos Creator性能优化---DrawCall
前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现. 无论是 Cocos Creator.Unity.Unreal 还是其他游戏引擎,只要说到游戏性能优化,D ...
- Cocos Creator 性能优化——对象池
对于游戏开发人员来说,性能优化是一个永远绕不过的话题,极致的性能是我们毕生的追求,今天就来带大家学习一下性能优化方法之一--「对象池」. 为什么要使用对象池? 在开始之前要先弄明白为什么要使用对象池 ...
- Cocos Creator性能优化-2-包体优化
对于Cocos Creator包体优化可分为 1.项目设置 1.模块设置 通过去除无需使用的模块来减少包体 (微信小游戏还支持引擎插件可在打包时勾选) 2.resources 总而言之不需要动态加载的 ...
- Cocos Creator ScrollView 性能优化
9月份 Cocos 技术开发分享会第 2 期在深圳圆满举行,近期我们将对活动干货进行整理,陆续在公众号上发布,没能去到深圳现场的开发者可以关注一下!对于分享的议题有哪些疑惑也欢迎在文末给我们留言! 本 ...
- Cocos Creator 性能调优优化集锦
01 为什么要做性能优化? 性能:是一种优秀的能力.唤醒快.运行持久.稳定. 这种能力在游戏上能让你的用户感觉很爽,表征表现为加载快.手机不发热.运行流畅.不卡顿. 所以,性能优化的终极目标是让你的用 ...
- Oracle数据库管理----性能优化
https://blog.csdn.net/yzllz001/article/details/54848513 数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我 ...
- 面向程序员的数据库访问性能优化法则
面向程序员的数据库访问性能优化法则 特别说明: 1. 本文只是面对数据库应用开发的程序员,不适合专业 DBA , DBA 在数据库性能优化方面需要了解更多的知识: 2. 本文许多示例及概念是基 ...
- 「数据库系列杂谈」数据库访问性能优化
为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 一.数据库访问优化法则简介 ...
- Qt Creator 创建优化的3D场景
Qt Creator 创建优化的3D场景 创建优化的3D场景 最佳3D场景示例 高景 低景 组合场景 顶点颜色场景 优化3D场景 场景图 资产复杂度 优化CPU性能 优化模型几何 基于用例的3D场景最 ...
最新文章
- [Android]开发摇一摇分歧表决器过程
- MATLAB某数组间隔取值
- Android --- Android Studio 内无法直接运行 main 方法
- 英语语法---分词短语详解
- boost::test模块带有自定义初始化测试的静态库使用变体
- (转载)Unity真机调试
- Flink的滚动策略
- IOS开发基础之团购案例17-xib和UITableView两种方式实现
- mac apache2 php,Mac OSX 之 PHP开发环境Apache2配置
- 《算法导论》第二章 入门
- python判断_Python中判断一个字符串是否以特定字符前缀开始的函数:startswith()
- mac 强制退出程序_Mac OS系统如何强制退出应用程序
- 互联网金融的前世、今生和未来-系列三(今生):一场跨界的战争
- 一起学Vue自定义组件之拼图小游戏
- 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台
- Graylog和ELK的简单对比
- 微信小程序仿照微信拖动缩放图片和截取头像
- 思维升级-如何设计一个秒杀系统?
- VS编写简单的网游客户端
- 吹得这么牛皮的RPC,到底是个什么鬼?该如何实现呢?
热门文章
- 全网首发:终极解决办法:/usr/bin/ld: libcc.so: no symbol version section for versioned symbol `memcpy@GLIBC_2.0‘
- TeaVM辛辛苦苦编译出的wasm,浏览器中不能跑
- cygwin安装之后,可以复制到其他机器使用
- 能跑的东西,尽量继续跑,平稳过渡
- 管理感悟:你的能力是有限的
- QT拖动界面的鼠标事件
- ionic 网站放在服务器,Ionic4 服务器插件-服务器Httpd - Ionic Native
- windows下怎么用basename_比较下养殖用铁丝网还是尼龙网,你会怎么选择?
- window10运行python弹出商店_Python上架Windows 10应用商店,但主要用于学习,正式项目还...
- PHP Sessions