-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[0.4.3.3-chs-alpha2.2.0] 采用新的本地化方式后会与一些翻译类插件冲突产生性能问题 #203
Comments
我用同学的电脑进行了一些对比,我发现实际情况似乎更为复杂一些。 我发现不同的平台在加载mod的时候有显著的性能区别,不仅如此,不同的浏览器也会带来区别,下面所列举的时间都是从本地化mod下载完毕到游戏界面完全显示需要的时间:
而相对的,我自己的设备都比较古老,因此加载时间更长,而且CPU占用更高,但是加载时间的增长并不线性,因此我依然怀疑存在性能问题,可能是针对特定平台的bug,我自己的设备如下:
根据这些数据,我怀疑这些性能问题更可能是关于edge的一些platform-specific的问题,也许没有办法很轻松的解决,甚至可能根本不可能只通过在游戏这边的社区力量解决,但是THEY DO EXIST。 我明白这比较令人困惑,因为这个性能问题看起来确实比较难以在不同的平台上复现,因此下面是一段屏幕录制,展示了在1135G7的笔记本上游戏加载的全过程: 感谢您的耐心。 |
在上一条发出后,我发现Github pages的版本已经更新为了[0.4.3.3-chs-alpha2.2.2-pre],我在自己的两台电脑上又进行了测试,现在两者的加载时间都在2min35s左右,CPU占用率不变。 |
use css-base-i18n-fix.css to fix prefomance issue Eltirosto/Degrees-of-Lewdity-Chinese-Localization#203
或许可以用css覆盖的方式来实现所需的功能 |
改过之后内存好像也下去了 |
在看了性能分析之后,我发现我犯了一个非常愚蠢的错误。 我之前甚至一度怀疑到性能问题是否和AVX512指令集有关,因为Intel在12代之后ban了AVX512,而我的两台电脑都具有AVX512,但是Chrome的测试证明Chrome并没有性能问题,因此我转而怀疑Edge和Safari在JS引擎方面是否有所魔改。然而我一直没有做的,就是在无痕模式而非用户配置下进行测试。 性能分析的结果显示一个匿名的函数调用占据了绝大多数的处理时间,而非游戏或者ModLoader。所以虽然改成Mod本地化后,加载确实慢了一些,但是慢了这么多,就完全是我自己的错误导致的了。 结果显而易见,是因为一个翻译用的浏览器拓展。我长期以来用Edge作为主力浏览器,因此我只在Edge(和手机的Safari)里面安装了这个翻译插件。翻译插件会监视新增的element并作出反应,这是我应当能够想到的,然而我对自己的第一判断太过自信,以至于忽略了这个最大的应当控制的变量,实在是贻笑大方了。 谢谢汉化组的各位提供的帮助和指导,也非常感谢大佬们的耐心,很抱歉浪费了大家宝贵的时间 : ( |
既然这样那看来可以考虑什么时候改成用shadow dom的方案,避免频繁增减node |
Firefox 有可能是GC的问题,i18n创建了太多string和node。看性能分析,感觉Firefox的GC比较保守,有可能是这个原因。 |
在提问之前...
问题描述
在项目采用了新的本地化方式后,使用Mod方式加载本地化文件会有较为明显的性能问题,具体表现为卡在
[i18n] Loading ... 90
两分钟左右,其间CPU高占用。在Windows 10/11上的Edge、Ubuntu 20.04的Firefox和iOS上的Safari进行了测试,均可以复现此问题。
存档 / 代码
N/A
截图
还有别的吗?
我并非反对采用新的本地化方式,我也明白原先的本地化方式存在着很大的问题和开发困难,但是相比原先,新的本地化方式确实存在较为严重的、难以忽视的性能问题。我想了解是否有能够优化Mod载入过程的方法,使得加载时间能够维持在一个相对合理的范围之内?谢谢!
The text was updated successfully, but these errors were encountered: