GoldenDict-ng(Linux/macOS/Windows)基于Qt5.15.2/Qt6.X版本

1 个赞

嗯,我看错文件了。后续看下。

在 这里 修改了

另外在考虑一个问题, 过滤的时候,要不要限定下返回的数量。
比如词头很多的情况,用户搜索a过滤,可能命中几十万的数据,这些数据原则上没有太大的意义。用户不可能一一查看(可以导出全量的过滤结果到文件), 类比搜索

刚才在测试的时候发现过滤的速度可能还有优化的空间。

(commit a810a56:heavy_check_mark:已解决2023-04-23)

拿一本20万词条的词典做测试,分别筛选aea全部,GD官网原版的表现稍慢但稳定:

录屏文件

fix/headword-filter这一版在第一次筛选a时很快,但之后的速度都变得很慢,第三次筛选的是和第一次一样的a,但速度比第一次慢很多,最后一次筛选全部则陷入卡顿,无法完成:

录屏文件


我也觉得普通用户不会逐个查看几十万个词条,不过我看到 #1215 有提到一种使用场景:

我也在别的贴子里看到过不少制作词典的人有提过这种用法,他们觉得mdict在这方面比GD更方便调试词典,快速拉动词条列表就能大致看出有什么问题(大概是这个意思吧。我自己都是用中小型词典,不会遇到很严重的卡顿,只要能和官网原版表现一致就能接受)。

最新xipian版(6.4.3-GoldenDict.exe_windows-2019_20230421-xapian)按F3设置词典的时候会闪退。系统是Win10

1 个赞

菜单打开词典会闪退吗,还是只有快捷键闪退

更新了下,麻烦再看看,
如果不关心排序的话,速度应该还可以进一步提升。

感谢更新,现在的速度比之前快了。不过在筛选全部词条之后继续筛选a(下面视频中第18秒左右),速度会比第一次筛选a慢一倍:

其他情况下未见异常。


还有个小细节,在筛选全部的时候发现底部显示的词条数量 “总共有213587不同的词条,已过滤210361个”,其中210361是去重后的词条总数,而213587是包含重复项的词条总数,这里的提示可能要改一下?

(官网版两处都是显示210361)

1 个赞

先保持这样了 索引想找机会重新实现一下

1 个赞

快捷键直接闪退,菜单Edit->Dictionaries点开也闪退

没重现,有相关日志吗



最新版,界面显示大面积留白。

最后一本词典的后面,特意加的400px 空白, 看起来舒服些。
尤其最后一本词典的高度比较低的时候。

反馈个使用体验的问题:

在一个词典很多的分组查词的时候,往下翻页的时候出现空白(正常现象),然后继续稍微翻页,等词典加载一会儿,发现前面稍微翻的一点页,却往下滚动过了好几个词典,这时候往往需要重新网上翻页回到之前位置附近。

能否翻页的时候,设置加载后跨度不要太大

不是很明白 录个屏看下

就是类似滚动位置好像有漂移现象,从一个位置突然滚动到另一个距离很远的位置,导致刚在一个词典,稍微滚动页面就到了另一个距离很远的词典

参考视频33秒和48秒附近

  content-visibility: auto;
  contain-intrinsic-height: auto 600px;

可能跟这两句css有关,你去掉后,重新编译看看。
另外渲染这么慢,估计跟某本词典的js有关系,你可以试着排除。

这两行css在哪个文件里,在GitHub项目里我没有搜到

1 个赞

两个css文件中 你搜索冒号前的字符串看下
显示你的搜索还在索引中

1 个赞

滚动漂移问题好像解决了,再用几天看看。

刚也排查了下js,移除了耗时最长的几本词库后,基本正常了。
脚本耗时从25秒降到了耗时476毫秒
渲染耗时从188秒降到了92秒

不过渲染方面好像还是有些问题,渲染的顺序感觉有些问题:刚开始加载的时候,前面几部翻页会很困难,一直显示空白(前面的按理应该优先渲染)然后接着翻页,等一会儿,所有网页就突然全部渲染完了(按前面空白等待的时间看,不应该突然就加载渲染完,而应该先渲染用户翻到的词库周边的词库,然后逐步渲染其他的)。

所以对先渲染的哪些词库会有些迷惑,词库渲染的优先分配方面可能还有优化空间


image