Xiaoyifang/goldendict 加载图片词典比较慢,不知能否优化?

论坛上很多类似的问题,他们觉得 NG 慢可能就是这个资源加载慢的问题,我之前一直归结为他们装太多词典/词典质量差/机械硬盘等原因,没想到他们在忍受这么夸张的延迟。。还可以注意到使用 qrc:// 加载的内置的 Javascript 脚本,5KB大小,用时 100ms,而 gdlookup:// 加载相同大小的文档,只需要 5ms。

是的,这个现象出现好久了。为了减少延迟,目前不用图片词典,修改词典去掉404的资源,以尽量提升响应速度。

1 个赞

这个问题要能修复,可以正式淘汰官方原版了。

Release GoldenDict-ng-v23.10.01-alpha.231008.e7cbf9fb · xiaoyifang/goldendict-ng (github.com)
试下这个版本。

@random @Vim @Mandolin 参考下面的图片,帮忙截两张图看看效果。



GoldenDict_nYVcK7YZ02

GoldenDict_GIyFRtff7a


比之前会快一点(点击的那个瞬间没有延迟反应了),但还是较慢(反应后的渲染好像差不多)

图片的加载时间从 719ms 下降到 223ms 数值上还是挺明显的。我这边是从159ms 下降到了 68ms,看截图还是 stalled 的耗时太长。


1 个赞

没找到 stalled 耗时过长的原因。

速度已经快了很多,挺知足了 :grinning:

1 个赞

@xiaoyifang @slbtty stalled 耗时过长的原因应该是受界面元素更新的影响,相同词条的加载,不需要更新界面,所以没这问题,验证了下这个想法,注释掉 articleview 里所有更新相关的代码行后,stalled 可以降到 1-2 ms。创建新项目复现不了这个问题,应该也是这个原因。

目前发现 stalled 受影响严重的两处地方:

ui.tabWidget->setTabText( index, escaped ); #L1950 #L490

emit sendWordToHistory( word ); #L361

注释掉这两处代码行后,stalled 从 45ms 下降到了 19ms,之后测试了多张图片 stalled 这个值基本稳定在 20ms 以下。这个问题要解决可能很棘手。

1 个赞

所以简单的说,stalled time是[后端]在处理其他事情?

1 个赞

是的,后端在做其他事,导致 stalled 耗时过长。这种情况不正常,浏览器不应该受主界面更新的影响,问题的根源应该是在这里,还要再看看。