windows版本按钮过多导致卡顿的原因以及优化建议

发现windows模拟器慢

请整理一个之前快的现在慢的界面的demo出来。我们才好排查问题。

1赞

windows版本, 在某个界面上不停移动鼠标, 帧率下降20帧.


发现除了mainLoop之外还有个pollEvents消耗了接近30%的CPU.
继续看到后面基本上就是鼠标移动回调的消耗了.

推断原因是所有的CCButton都注册了鼠标移动消息, 优化方法: 没有设置hover时换图的按钮不需要注册MOUSE_ENTER和MOUSE_LEAVE.

哥们你用的这个分析器是什么?

vs2015

但是,跟1.5比慢了啊。
控件监听mouse事件的逻辑应该一直没变化的。
所以你说是比较1.7慢了,那么整理个demo,我们也测测排查一下。
至于说优化,这块@jare麻烦看看。

原因是1.5的时候还没有这么多按钮, 节点. 项目也在不断开发. :blush:
我回退到1.5也会有这个问题.
正确的描述是, 1.5, 1.7都有这个问题.

哦。了解,你是有需要发布到desktop平台么?这块看@jare打算怎么优化吧。

对了,那如果是这样的话,请修改一下标题吧。1.7不接这个锅。

已经修改.
不发desktop, 但是这个问题会影响使用simulator的时候对效率热点的判断.

偷偷告诉你个事,我们现在模拟器编译,还是直接编译debug版本的。
所以你用debug版本的模拟器做热点判断,意义大么?

@nantas@jjyinkailejj 具体为什么模拟器需要编译成debug版本,我不清楚,你们可以帮忙解答一下 么?

耗时增长可以认为是等比例的, 能初步判断哪些场景更卡, 对不对.

这个等比 比较较虚。因为不同函数的复杂度不同,编译器在release模式下对不同函数的优化效果就不同。
所以我们一般都是用release模式做性能测试。