ElvUI WindTools

ElvUI WindTools

3M Downloads

[Bug] 和Mogit插件共用时每次reload卡顿时间较长

StackExplode opened this issue · 6 comments

commented

描述问题

当启用Mogit插件并且在wind工具箱内允许插件美化时,每次reload或进游戏后卡顿时间明显比不开要来的久。希望作者可以看看,如果修复花费较大,不知是否可以增加一个filter来过滤不想美化的插件。当前的话如果选择了某些插件依赖的UI库美化,插件本身就跟着美化了,无法具体筛选插件。

错误复现

错误复现步骤

  1. 打开 'Wind工具箱',选择'美化外观'中的'插件'选项卡
  2. 在插件列表中使能'Mogit'插件
  3. 点击 '启用全部'
  4. reload界面
  5. 观察卡顿时间
  6. 打开 'Wind工具箱',选择'美化外观'中的'插件'选项卡
  7. 点击 '禁用全部'
  8. reload界面
  9. 观察卡顿时间明显下降

预期功能

修复与Mogit共存时reload导致的卡顿时间过长问题。或者,以文本框、列表框等形式让用户精确过滤哪些插件不想被美化,即便它们依赖的UI库已经被勾选了美化。

截图

参见文字描述

插件信息

(请填写基本信息,你可以在 [信息] 中找到)

  • 插件版本:3.75
  • ElvUI 版本 13.76
  • 游戏版本 11.0.2(56461)

更多信息

如果你有更多信息,在这里填写。

commented

我装了下 Mogit,感觉用不用美化都很卡。

但我确实发现卡的有点不太正常,而且关闭 Wind 工具箱能明显改善。
经过一顿排查发现是 其他 - 公会新闻装等 和 Mogit 会导致卡顿。
虽然感觉有点八竿子打不着,但是现在开始尝试阅读 Mogit 代码来看看能否改善。

关于 Ace3 皮肤,其实 Ace3 自己都不知道调用方是谁,Wind 工具箱的美化自然也无法去判定哪个插件的库要美化哪个插件不要,这个功能是从原理上就无法实现的。

commented

目前目测是 Mogit 不知道什么代码导致会在游戏载入时错误触发 CommunitiesGuildNews_Update 数百次,导致公会新闻所有装备都被获取了一次装等

commented

目前目测是 Mogit 不知道什么代码导致会在游戏载入时错误触发 CommunitiesGuildNews_Update 数百次,导致公会新闻所有装备都被获取了一次装等

辛苦大佬了,您如果觉得这是mogit的问题且不易修复,麻烦您教教我如何debug mogit,我去mogit的repo里开issue。

commented

好了,我确认问题了,但这个应该是暴雪的锅。
Mogit 会在进入游戏时大量的使用 C_TransmogCollection.GetAppearanceSources 初始化(几万次),然后这个 API 被调用太多会导致 Bug 触发了公会界面的全量更新(CommunitiesGuildNews_Update x 400 次左右),进而导致公会新闻的装等获取功能被大量调用。
装等获取因为是要走服务器的,短期大量使用会导致帧处理变慢,然后游戏界面非常卡顿。
我下版本会尝试加入一个小机制来防止大量请求集中释放来缓解这个问题,但是用 Mogit 会卡这个估计解决不了。

commented

就像上面所说的,3.76 应该会有改善了。
不过彻底解决没啥办法,MogIt 重载直接扫全局数据其实是非常少见也是暴雪估计没想到的操作。

commented

就像上面所说的,3.76 应该会有改善了。 不过彻底解决没啥办法,MogIt 重载直接扫全局数据其实是非常少见也是暴雪估计没想到的操作。

谢谢大佬,有明显改善,我使用12900 CPU测试reload后卡顿在3s以内,已经可以接受了,cheers