原生App
iOS手机浏览器
如图所示,打包成iOS App后,各种数据暴增,严重卡顿。
但是在同一台手机浏览器上,却非常流畅
一直用模拟器开发,因为需要大量数值计算,所以也试过模拟器卡顿,经过一系列优化后,模拟器浏览器都流畅了。。但是最后却卡在原生App上。
非常不解是什么原因导致耗时。
有人可以分析分析,我应该从哪方面入手去寻找问题并解决吗?
Ps:创建的角色(数量,数值都是一样的)但是web模拟器上就是比原生的drawcall少一半。
原生App
iOS手机浏览器
如图所示,打包成iOS App后,各种数据暴增,严重卡顿。
但是在同一台手机浏览器上,却非常流畅
一直用模拟器开发,因为需要大量数值计算,所以也试过模拟器卡顿,经过一系列优化后,模拟器浏览器都流畅了。。但是最后却卡在原生App上。
非常不解是什么原因导致耗时。
有人可以分析分析,我应该从哪方面入手去寻找问题并解决吗?
Ps:创建的角色(数量,数值都是一样的)但是web模拟器上就是比原生的drawcall少一半。
你先看看你的drawcall为啥相差了一倍
这个我也是很奇怪
我知道drawcall是一部分问题。
但是创建同样多的角色(各种数值都一样)
web模拟器就是比原生drawcall少一半。
这DC数量是认真的吗,应该有很大的优化空间吧。。。
是有的,但是我想先找到问题。
我也尝试了把drawcall降低到了100内。
但是web模拟器还是比原生App快。
主要就是GameLogic的差别。。
同样一套逻辑,原生和web的性能差别是如何优化呢?
已经优化了一周了,想放弃了。
把drawcall降到100内,iOS原生该卡还是会卡。
每敲几行代码,就要打包到原生手机上跑一次,真累。
大量的数值运算是什么,是物理系统还是什么特殊的战斗逻辑?看图GameLogic耗时也太多了,现在的数值运算是在JS层写的吗,是否考虑把这些数值运算放到OC里
一开始用物理引擎,在模拟器上也是很卡,但是经过了优化,模拟器上和iOS手机浏览器上可以保持55帧以上。这里想当然以为原生更加没问题。然而事实相反。
后来取消了物理引擎,使用纯数学运算,计算坐标等数值运算。性能比一开始好了很多,但是随着计算数据增加,最后还是掉帧到20-30;模拟器和手机浏览器还是可以保持60;
如果专门做iOS的话,我也会考虑放OC里面运算,甚至用iOS原生框架开发了
。。
要不考虑下策划方面的修改,比如限制物理单位数量什么的;然后算法层面优化,类似碰撞有做运算分组吗;等等,楼主加油 -,-
目前就是限制一下,尽量设计关卡在流畅范围内。。不过这个是作为最后不得已的方案。
还是尽力研究一下,也是在算法方面入手。
谢谢鼓励
版本2.0以上会有这样的问题
使用了QuadTree优化,目前性能有显著的提升。
太感动了
ios原生没有开jit,所以卡。特别是物理那块
这drawcall…
我看到drawcall 100都会很慌,你这超的有点严重,估计就算不卡,手机也得烫死
对对对,后面发现就是物理特别卡
这个dc主要是在开发阶段,很多资源不确定,所以没有合图。
这个只有一部分原因,主要还是物理引擎卡
主要是没jit, 不知道2.2有没有做jit优化