cocos2d-x 3.17 Android 的 lua 文件加载过程特别慢

最近把项目引擎从3.12升级到3.17,在安卓平台上默认ABI从armeabi变成了armeabi-v7。问题就来了,启动速度明显慢了很多,我手上有一个新机型和一个老机型。新机型跑3.12的引擎启动2秒不到,而跑3.17的启动大约5秒时间。老机型跑3.12启动约为3秒,跑3.17启动时达到了惊人的30秒。我查看了日志,在加载lua文件的时候特别的慢,请问各位大佬这是为什么?

可以验证一下 lua-tests 的加载时间区别吗?这个项目是我们可以共同验证分析的。新机型和旧机型具体是什么。

3.12 - 3.17 之间有开发者修改过 lua 加载的逻辑,增加了一些特性,不确定是不是因为增加的一些特性,过分的拖慢了速度,PR 在这里。

https://github.com/cocos2d/cocos2d-x/pull/18171

标题能否修改成: cocos2d-x 3.17 Android 的 lua 文件加载过程特别慢。显的准确

你好,我把3.12版本的这个文件弄过去编译了,发现确实如此,弄过去之后加载速度特别的快

1赞

有兴趣的话,可以找找这个 PR 的毛病,在 GitHub 回复那个开发者,一起改进

确实有这个问题,尤其在模拟器上非常明显,速度骤降,改为3.12确实提速明显,有空了,看看什么问题,有收获了发上来。

@qq349263818 已经验证过是上面 PR 的问题,暂时把对应文件回滚一下临时解决

临时解决, 就是回滚到3.12版本的吗??

只把 PR 修改过的一两个文件替换为 3.12 版本的,其它文件不变化

有解决方案了么

上面提到的那个 PR 的作者 v1993 在 GitHub 是非常活跃的,今天还在回复 issue,强烈建议直接到 PR 下面回复他,能很快得到回复的。

如果英文交流比较困难的话,可以借助 Google 翻译

MARK

3.16 也很快,替换到了3.16就OK了 3.12~3.16 之间,这个文件的内容应该是一样的,感觉是增加了 while循环遍历导致的慢
3.16 中 2~3秒就启动成功了;
3.17要9到10秒
就是3.17的问题了

@maojudong 把这个反馈,回复到开发者 PR 了 ,你也可以关注 PR 作者的回复 https://github.com/cocos2d/cocos2d-x/pull/18171

好的,加油

这个问题会在3.17.1中修复,PR: https://github.com/cocos2d/cocos2d-x/pull/19234

1赞