先做做了一张Tiledmap 地图,做成了三个map1,map2,map3 prefab预制件。游戏启动后三个prefab 实例化后加到同一个node中,并设置好位置起始位置。当移动到一定距离,则把最左边的mapNode坐标设置为当前最右边坐标。以此实现地图的循环移动,现在出现设置mapNode坐标时,出现了明显的卡顿情况,整个程序卡住了一会儿,然后好了,每次设置mapNode到最后边时都出现。 查看的GL verts 不到一万,GL calls 16**** 有劳大神看看
请问是哪个平台卡顿?如果只是设置坐标应该是不可能会这样的,应该是你同时做了其它操作引起的。
android 和 web 都有,工程有点大,没能完整上传,要不QQ传下,又绕看看
那麻烦做个简单点的 demo,我们要先存档的,太大的话最后修复的人很难和你沟通。
感谢~~ asdf
下午弄了个工程,只有三个Tiledmap做的prefab 然后控制它的循环,切换地图时只掉了2帧,verts时9000,gl calls 3。想想有些代码要调整下,我再测试下
下午仔细的调试后,最终确定了发送卡顿的时间点,当map1.map2,map3地图循环一圈(视图:map1-map2-map3 --> map2-map3-map1–>map3-map1-map2—> map1-map2-map3),当map1再次出现在屏幕中时,出现了卡顿情况,帧数降低到10。 有劳大神分析下
日志如下:
Simulator: DT -->0.09778100252151489
Simulator: next map --> map3
Simulator: next map --> map1
Simulator: next map --> map2
Simulator: DT -->0.09274300187826157
Simulator: next map --> map3
Simulator: next map --> map1
Simulator: next map --> map2
Simulator: DT -->0.0917700007557869
后续分析了下内存情况,发现出现降帧的原因时释放内存,在跑动过程中,内存不停增长,达到一定值后释放;这样周期性的卡顿。即使时空场景,内存也会慢慢增长
我的场景只有一个Tiledmap,移动它也都会卡顿,同坑…
我目前查到原因需要查看引擎部分,看看那些地方的代码在不停增加内存,并在什么条件把这些内存释放掉。