我有一个非常简单的字典应用程序,可以搜索和显示.它是用Win32::GUI模块构建的.我将该字典所需的所有纯文本数据放在该__DATA__部分下.该脚本本身非常小,但该__DATA__部分下的所有内容,其大小达到30 MB.为了与我的朋友分享工作,然后我使用PAR::Packer具有最高压缩级别9 的模块的PP实用程序将脚本打包到一个独立的可执行文件中,现在我有一个大小相当的单文件字典应用程序17MB
但是,尽管我对单文件脚本的想法非常满意,但是在脚本的DATA部分下放置如此大量的文本数据并不合适.首先,当我尝试在Padre中打开脚本时(Notepad ++没问题),我收到的错误是:
Can't open my script as the script is over the arbitrary file size limit which is currently 500000.
我的问题:
如果我将DATA部分下的所有内容移到单独的文本文件中,除了消除Padre的文件打开问题之外,它是否带给我额外的好处?
如果我这样做,我该怎么做才能减小单独文件的大小?拉链并在搜索和显示时解压缩?
人们通常如何格式化字典应用程序所需的文本数据?
有任何意见,想法或建议吗?总是如此谢谢:)
如果这样做,我应该怎样做才能减少单独文件的大小?在搜索和显示时压缩并解压缩它?
好吧,这取决于您为什么要减小尺寸。如果是为了最大限度地减少磁盘空间的使用(现在大部分时间都是相当奇怪的目标),那么压缩/解压缩就是最佳选择。
但是,如果目标是最小化内存使用量,那么更好的方法是将字典数据分割成较小的块(例如按第一个字母索引),并且仅加载所需的块。
人们通常如何格式化词典应用程序所需的文本数据?
恕我直言,通常的方法是您所得到的上述方法的逻辑结束(分区和索引数据):使用后端数据库,它允许您仅检索实际需要的数据。
在你的情况下,像 SQLite 或 Berkley DB/DBM 文件这样简单的文件应该没问题。
如果我将 DATA 部分下的所有内容移动到单独的文本文件中,除了消除 Padre 的文件打开问题之外,它还会给我带来任何额外的好处吗?
这在某种程度上取决于您的使用情况...如果它是一个由 3 个人使用的不变脚本,可能没有任何实际好处。
一般来说,它将使维护变得更加容易(您可以独立更改字典和代码逻辑 - 考虑病毒定义文件与防病毒可执行文件作为现实世界的示例)。
如果您采用我上面提到的方法,它还会减少进程内存消耗。