反馈:2.4.4active=fasle,耗时很长(有具体的profile)

最近在做性能调优的时候,发现仅仅是 active一个节点,性能耗损都会十分严重。
如下,微信开发者工具:
image

在关闭一个界面的时候,会在onDisable中off所有注册的事件,节点树不到100个,但是active=fasle耗时了24.84ms。

在网页端,同样的接口:
image
耗时 9.72ms ,性能比模拟器上好,但整帧因为这个耗时依旧会超过20ms,fps低于60.

最终的表现,就是在手机上切换卡顿效果十分明显。

请问各位大神,有没有好的方法处理这种界面切换卡顿的问题?

我之前是把节点的destroy改为现在的 active = false,但是卡顿问题还是会很明显。

opacity=0 可能会好点,但是如果所有的界面关闭,都通过opacity来控制,这也不是个方法啊

在设置active的时候,会循环遍历_activatingStack
附上源码:

        var stack = this._activatingStack;
        for (var i = 0; i < stack.length; i++) {
            var lastTask = stack[i];
            lastTask.preload.cancelInactive(IsPreloadStarted);
            lastTask.onLoad.cancelInactive(IsOnLoadStarted);
            lastTask.onEnable.cancelInactive();
        }

那有啥办法处理么

用了 Prefab没?

嗯 ,都是prefab 实例化之后,做界面切换的