H5_game性能优化总结

本文介绍了使用LayaAir引擎进行游戏开发时的性能优化策略,包括内存优化、图形渲染优化和CPU优化等方面。提供了具体的技术建议,如对象池的使用、减少图形嵌套、计时器管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、内存优化
1.对象池优化,LayaAir引擎中的对象池:laya.utils.Pool
2.使用含有对象池的Handler处理异步回调
Handler()没有使用对象池,Laya.Handler.create()使用了对象池
3.将不使用的对象设置为null,TypeScript最终编译成JavaScript,而JavaScript运行时无法启动垃圾回收器,当对象设置为null时,不会立即将其从内存中删除,只有系统认为内存足够低时,垃圾回收器才会运行,内存分配(不是对象删除)会触发垃圾回收,当存在循环引用时,垃圾回收无法回收。
4.当不需要使用的资源时,使用Laya.loader.clearRes将资源卸载
5.尽量避免大量使用滤镜、遮罩,或者能不用就不要用。如果需要滤镜效果直接让美术模拟出图
二、图形渲染
1.降低显示对象的嵌套层次,减少sprite数量
2.将不可见区域的对象尽量移除或设置visible = false(移除 优先 visible = false)
3.将静态内容(加载后不会一直刷新变化的内容)设置cacheAs属性为"normal"或"bitmap"
4.尽量保证图片渲染顺序是挨着的,尽力不要让不同图集交叉渲染
5.尽力保证一个面板所有资源来源一个图集,以此减少提交批次
6.对于需要持续变更文本内容的Label,使用changeText方法变更文本,这就如Flash中append方法






(1)使用changeText设值 (2)使用.text设值
上面两张图都是创建10000个文本,并每秒更新文本内容,内容为当前时间戳,其实我并没有感受到性能差距,不过这样做总是好的~~~~

三、CPU优化
1.JavaScript中任何对象都是动态的,在大量的属性里查找某属性可能会很消耗性能,如果需要频繁使用某个属性值,可设置为局部变量进行引用
2.对于两种计时器(帧计时,时间计时)在不使用的时候都需要及时销毁
3.在使用Laya的时候会遇到一个坑,在给sprite绘制纹理的时候,无法获取sprite尺寸,这是Laya出于性能考虑,在绘制纹理后需自行通过Texture尺寸设置sprite尺寸,重复触发autoSize对于大量子对象的容器是不可取的。
4.对于频繁操作,可以使用延迟调用的方法,避免重复高频计算,在Laya中使用callLater方法实现
5.良好的资源加载及卸载管理

文档连接:https://ldc.layabox.com/doc/?nav=zh-ts-0-3-0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值