上一个版本发群里,好友测试后说他的845处理器跑起来都有点卡。自己在模拟器、浏览器、微信开发者工具里面测试都不卡,我的625处理器手机上也是偶尔有点卡。于是就在论坛看有没有物理引擎优化方面的帖子,查找了一下也没有找到,于是查看小游戏类的帖子,看到有大佬总结了一下微信小游戏的性能问题,渲染一般,js逻辑处理慢的问题。终于找到问题原来是微信小游戏性能不行,只好减少刚体,减少逻辑处理了,但是有没有不减少刚体,也不减少逻辑处理的方法了?想了几个晚上。
记得之前的版本内存去到290M,业务内存接近400M,看了一下太恐怖。
于是从新设置了整个游戏逻辑,现在的版本基本保持内存在270M左右,业务内存190M左右,内存基本没什么变化,业务内存却减少了一半。
之前的版本,只是删除画线刚体,其他刚体都是用active = false或者true,想着只是隐藏或者显示应该不会太消耗时间,所有就没有用的对象池,但是刚体一多显示起来明显有点卡。所有对象都是加载场景时创建,游戏时只是处理显示或者隐藏,不知道为什么,运行起来还是有点卡,苦思不得其解。
三更半夜的突然想到实在不行就用对象池来试试,第二天醒来就开始修改,打开场景才知道没这么简单,2.0出现莫名其妙的bug所有的图层都不显示了,还一直在报错了,报的错还有些不知道怎么处理。没办法只能用2.0的创建一个新的项目,从头开始把能用的资源跟不用重新逻辑的脚本拿过来,从新开始创建场景,由于是第二次写,速度明显提升不少,用了一天左右的时间就把大致的场景跟添加对象池的业务逻辑完成的差不多了,等到了第二天,神一样的bug又重现了,2.0打开后全部的图层都不显示了,还一直报错,打开其他的场景正常,只是游戏的场景就报错,想一下玩了看来又要重写了,想想我上辈子是不是得罪了整个银河系啊,这样的问题这么又让我遇到了,于是有点论坛去反馈,看来问题比较小众几率也不说很大。突然鬼使神差的我点击了一下Canvas把所有的图层都隐藏了,然后在显示,奇迹出现了,图层都显示出来了,编辑器log也不报错了。这种感觉就像你裤子都脱了,突然发现没有厕纸,然后你朋友拿着厕纸过来给你。
知道问题怎么解决整个人都感觉轻松很多,编辑中途也出现了几次,也尝试过把场景文件恢复到没有报错时候的备份文件,问题还是会报错,这样才确定是编辑器有问题,不管场景文件的事,只要按照老办法,隐藏在显示图层。
改版后在加载场景时一次性创建100个刚体对象到对象池中,需要使用时在get,不用的时候在put,更改后发现在微信小游戏真机测试时明显流畅了很多。原来get跟put比active=false或者true,性能相差这么远的。
还有引擎组要怎么添加小游戏测试,2.0能不能支持下,
对于小游戏来说测试还是很有必要的,希望引擎组可以支持,不然每次上传都有点小担心有没有bug。
总结:能用对象池的就不要用active处理,对象少还好说,对象一多性能就明显了。
游戏更新:
除了优化游戏外还添加了游戏背景、修改了画线为动态刚体,增加游戏可玩度,还有添加左右护法跟游戏圈按钮,大家可以玩一下,有问题可以相互探讨跟学习。