客户端性能优化

通用优化经验json

  一、如无必要,不要在onFrame onSecond onRender这种频繁刷新的事件中,进行大量复杂的运算,或者建立对象,这些事件太频繁了,执行复杂操做对性能开销很大数组

  二、使用缓冲池技术,把频繁使用的数据或者对象缓存起来,避免重复建立缓存

  三、再也不使用的对象,须要记得回收掉,remove del clear等微信

  四、不要再舞台或者画布上,放置大量的须要渲染的对象,太多的显示对象会严重影响渲染效率性能

    例如在使用fancy3d时,若是在一个UI界面上,同时加载3个或者更多drawboard,每一个drawboard加载1个3D模型或者场景,这样的效率极差,优化的办法是合并,例如把3个模型放入同一个场景中,UI上只有一个drawboard负责加载这一个场景便可优化

  五、使用图集技术,下降io和数据访问次数this

  六、显式中止计时器,让它们准备好进行垃圾回收.net

  七、使用事件侦听器并在不须要时删除这些侦听器插件

  八、屡次调用类属性或者须要从多层嵌套的数组中取值时,避免直接使用this.att,创建局部变量赋值,例如 this.attrs.att => var attrs = this.attrs  attrs.att3d

  九、把一些经常使用的参数建立为全局变量,避免重复定义

    fancy3d项目中,建立一个全局Vector3对象,供客户端运算使用,避免了在使用时重复建立vector3对象的问题

内存泄漏

  一、UI泄漏

  二、实体泄漏

    ①各类程序建立的对象的泄漏

      忘记回收

      因为实体被别的地方引用,致使回收不掉

    ②美术资源制做时候,因为没有按照规范,致使的实体泄漏,常见的是特效泄漏

      在fancy3d项目中,因为特效制做时,没有正确的设置粒子的生命周期,致使技能特效显示后不能自动回收,致使客户端特效泄漏

  三、代码逻辑致使

 H5重度游戏优化经验(针对微信小游戏)

  加载

    ①缓存 

      微信支持将 代码包4~8m 资源包50m 缓存到本地 

      commonJS2解决4M包不够用的问题 (拆分代码和配置文件)

      微信小游戏不支持动态增长代码

      能够将一部分资源存放在本地

      5.1 assetmanager 严格 区别于 RES的宽松

      Processor 资源加载都会走这里,能够重写Processor方法,增长cache

    ②资源合并

      打包图集 纹理集

      subkey

      json文件合并 merge.json  写本身的插件plugins

  建立

    减少

      能够着重优化相似进度条这个重复单项

    复用

      缓存部份内容供复用,可能会涉及到内存问题

 

 

egret客户端优化参考资料

egret官方视频 https://mp.weixin.qq.com/s/2XRI7qzUvrZevlijtJ7I8Q

egret渲染优化 https://blog.csdn.net/bibimybest/article/details/80519576

egret内存泄漏 https://blog.csdn.net/yangxuan0261/article/details/81260498

egret分包策略文档 https://mp.weixin.qq.com/s/9vg2cA1L-_eY2lTdbTSVeQ

相关文章
相关标签/搜索