librehat / kdictionary-lingoes

A Lingoes dictionary file (LD2/LDX) reader/extractor. Written in C++ with Qt
GNU General Public License v3.0
75 stars 29 forks source link

为什么这个程序转换字典非常慢? #4

Closed mpco closed 9 years ago

mpco commented 9 years ago

我使用这个程序转换10M左右的字典文件大概需要十来分钟,而使用其他的程序转换只需要几秒钟。 我使用Visual Studio 2013的性能分析器分析了下,99%以上的时间都消耗在了decompress函数所调用的qUncompress函数上,我看了下qUncompress的说明,貌似要求将解压后的数据尺寸放在待解压数据的开头,但是在程序里我看到的貌似是把待解压数据的尺寸放在了开头,不知是不是这样,还请作者解答。

librehat commented 9 years ago

没有十几分钟啊,我没在Windows下用过,Linux下很快的。

你的Qt版本是?

另外,编译是release模式吧?

mpco commented 9 years ago

Qt5.4.0 编译是Debug模式

librehat commented 9 years ago

确实是要把解压后的byte size放在前面,但是每一个data的size是未知的……因为中间有一些offset……

你试一下换到Release模式看看耗时如何。