我有很多文件要压缩(22K @31.5GB),然后通过Inno安装程序解压(安装)它们。我当前的[Setup]配置是:
LZMANumBlockThreads=6
LZMADictionarySize=1048576 // doesn't affect the installation performance
LZMANumFastBytes=273 // doesn't affect the installation performance
CompressionThreads=auto
DisableReadyPage=True
InternalCompressLevel=max
SolidCompression=no // 'yes' causes out of memory error due to overloading 16 GB of RAM
Compression=lzma2/ultra64安装性能中存在问题。我看到,在48个可用CPU线程中,只有3-4个线程被完全加载,解压缩过程似乎比我的2* Xeons上的进程慢得多。NVMe SSD只使用其性能的2-4% .
我的同事们用不同的PC配置注意到了同样的问题。
如何绕过这一瓶颈,对Inno说:使用每个可用的CPU线程并更快地解压缩我的文件?
P.S.尝试了不同的描述:https://github.com/teeks99/inno-test,但没有得到任何可应用的结果。正如我所看到的,我需要对islzma64.exe做一些事情,但是它没有任何来源--即使在那里,https://github.com/jrsoftware/issrc/tree/main/Files也是一个没有任何文档的坚实的可执行文件。
谢谢。
发布于 2022-07-09 15:55:36
试着添加
[setup]
LZMAUseSeparateProcess=yes另外,当您使用solidcompression=no时,1 file =1 solidblock ~= dict大小,所以您有大约22k的solid块,从1(几个)实体块进行的分解应该比从数千个实体块中的解压缩要快。我认为,实心压缩和LZMADictionarySize=1048576是最好的变体,lzma2也有分配内存的限制(大约是“16 GB内存超载导致内存不足”),不确定在inno中修改了多少。
https://stackoverflow.com/questions/72894497
复制相似问题