LayaBox H5游戏性能优化

对于游戏开发避免不了性能相关优化,小编总结了如下:

一、内存优化如:代码不规范,初始化定义的变量,销毁时未及时清理会存在内存中
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方法变更文本,如果频繁遇到宽度不可控,还是得选用.text设值,使用changeText设值的优势在于不需要重复计算文本的位置可以提供渲染效率

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

四、其他
1.将多个js文件打包合并成一个文件,可以减少http请求个数,加快游戏读取速度
2.把贴图资源打包成一个大图集加载

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React H5性能优化是开发过程中非常重要的一部分,下面是一些常见的优化策略: 1. 使用React.memo()来优化组件渲染:React.memo()可以将组件包裹起来,以减少不必要的渲染。它会对组件的 props 进行浅比较,如果 props 没有变化,则不会重新渲染组件。 2. 使用shouldComponentUpdate()或React.PureComponent来避免不必要的渲染:这些方法可以在组件更新之前进行比较,如果 props 或 state 没有变化,则可以阻止组件重新渲染。 3. 避免在render()方法中进行昂贵的计算或操作:render()方法应该只负责渲染组件,不应该包含复杂的计算逻辑或操作。 4. 使用React.lazy()和React.Suspense来实现按需加载:将大型组件拆分为多个小组件,并使用React.lazy()和React.Suspense实现按需加载,可以减少初始加载时间。 5. 使用Key属性来优化列表渲染:在使用map()方法渲染列表时,为每个子元素添加唯一的key属性,这样React可以更高效地更新列表。 6. 使用shouldComponentUpdate()或React.memo()来减少子组件的重新渲染:如果子组件的props没有变化,则可以通过shouldComponentUpdate()或React.memo()阻止子组件的重新渲染。 7. 使用虚拟化技术来优化大型列表的渲染:使用React-virtualized或react-window等库可以只渲染可见区域内的列表项,以提高性能。 8. 使用性能分析工具来找出性能瓶颈:使用React DevTools或Chrome DevTools等工具可以帮助你分析组件的渲染性能,找出潜在的性能问题。 以上是一些常见的React H5性能优化策略,你可以根据具体情况选择合适的方法来提升应用的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值