3.1 版本 web-desktop/mobile 性能问题

  • Creator 版本: 3.1.0

  • 目标平台: web-desktop/mobile

  • 重现方式:浏览器 debug 版本与 release web-desktop 对比

  • 之前哪个版本是正常的: 3.0.1

  • 编辑器操作系统: Win10

  • 重现概率: 100%

同样的项目, 同样的代码, 3.0.1 release 成 web-desktop 没有问题, 与浏览器预览 debug 版本性能类似
升级到 3.1.0, release 后发现性能急剧下降.

3.0.1 debug vs web-desktop 此处能看出来性能是相近甚至 release 版本性能更好
QQ截图20210515205525

3.1.0 debug vs web-desktop 这就完全崩了
QQ截图20210515205152

3.0.1 vs 3.1.0

3.0.1 vs 3.1.0 6x slowdown

补充 debug 和 release 版本在 chrome 下的 performance 的数据对比, 均是 6x slow
QQ截图20210517123821

静止, 稍微简单的场景

会动的, 有每帧 widget 对齐在跑的

看起来很奇怪, release 版本不管跑什么操作性能都特别差
这个问题在 3.0, 3.0.1 都正常, 只有 3.1 release 版本是这样奇怪的性能
希望引擎组帮忙看看

你这个测试场景包含了什么资源?方便提供个demo给我们吗?从数据上看,render和logic时间都同步上涨了而且差距非常大。

给出的数据中:
静态场景这个对比就是简单的UI,包含一些Sprite和button
动态的场景是包含自己实现的对象池在循环复用object并且做position移动,就是音游的音符下落

要复现这个问题
新建一个2D场景堆入几十个正常UI node,打一个Web-desktop的release版本,跑一下,应该就能看出差距,如果差距不明显,打开 6x slowdown
单看调用树分析感觉是release版本没有合批渲染导致?
因为3.1你们说渲染改了很多,所以猜测是不是这边出问题了
但是同时logic时间也暴涨,这个就有点摸不着头脑了,看起来又像哪里阻塞了又看不出来
而且更怪的是debug预览没有这个问题,性能是符合预期的

好的,我们先测试下看看具体情况。

我这边测试了3.0.1和3.1的release版本,测试出来的数据是一样的,没有大的变化。
测试需要考虑渲染表面的分辨率,使用同样的release版本或者debug版本环境做参考。

3.0.1

3.1.0

这 frame time 高得有点诡异

破案了, 我这边再次重新开了个新项目, 只复制过去了 assets, 以默认设置 release, 性能与 debug 一致了.
仔细排查各种设置, 发现有性能问题那边的项目关掉了 “宽松模式” (应该是以前关掉了的, 因为之前好像有说过关掉了会影响某些强类型判断啥的)

对比编译后的项目, 发现结构还是有一些不一样的, 包括 cc.js, 可能这就是影响性能的原因了, 但是为什么带这几个设置后, 项目编译的代码会有不同, 这个可能要 typescript 的大佬们解答一下了.

左边为宽松模式, 右边为非宽松模式