求教,导致卡顿一般有哪些原因?

Frame time:180
Framerate:5
Draw call:76
Game Logic:180
Randerer:2
Canvas:0

这5个性能参数一般会受到哪些因素影响?尤其是Game Logic,我觉得这次的卡顿原因就是Game Logic过高,那么,Game Logic过高一般会是哪些因素影响呢?

顶顶顶

你可以 通过chrome 调试来查看你的代码哪里有问题。

主要原因是程序员的经验不够

加班加的少了。。

老哥们说的我都赞同,可还没有说到点子上啊。3楼大哥说的调试能说具体点吗?

chrome浏览器有一个performance功能,你可以录制你认为较卡的一个阶段。然后去细化分析是哪一部分耗时严重。

1赞

感谢各位热心的老哥。
先上图,做的拼图游戏,右边的拼块都加了不规则控件。也加了判断触点是否在不规则区域内的函数。

接下来是调试结果,感觉就是太多的collider才导致了这么卡的


那个CCCollisionManager.js中执行的那个updateState()函数耗费了大量的时间,问题来了:我还没开始移动那些拼块呢,为什么collider组件要不停地执行updateState呢?能设置成只有在collider所在的节点的位置改变时才去update吗?希望有团队大大或者野外大神来解答一下吧

你好,你这个是怎么定位到这个类里面去的,我的只定位到CCGame就停止了
,请教

用浏览器的调试,具体步骤忘记了

自己写一个简单的碰撞吧

请问大佬,代码作测的代码耗时是怎么弄出来的?

可以使用chrome devTool 的 performance 做测试。

我在论坛上看到了这个链接:
https://segmentfault.com/a/1190000011516068

并且照着去做了,但是没看到右上角红色的小三角,
同样,代码耗时也看不到…
怀疑是不是自己的姿势错了…

mark

同问,代码行数的右边的的耗时多少ms,怎么弄出来的

一般我们以400ms来评判界面是否符合卡顿,那么cocos creator导致卡顿有哪些原因?
主要来自下面几个地方:
1.实例化过程造成消耗比较大。具体可以参考ccPrefab.js 中_instantiate的过程。
虽然官方提出了一个JIT优化策略,由于前期1.x早期版本都是使用JIT,造成第一次打开很消耗时间。后来加入了小于3次的时候,不用JIT。
2.渲染树流程问题。如果你的预设过大,来回隐藏,active = false; setActive(false);类似这样的操作十分耗时;还有设置父亲节点,也就是改变渲染树结构。详细可参考

中的activateNode 函数
以上2点都可以通过chrom timeline中


对应的JavaScript Profiler进行分析。
希望对你有所帮助。

找到了,感谢!