Tested 7z vs 7zdll/PA vs rz:
Code:
41,262,256 // powerarc.exe (x64)
6,994,751 10.093s 0.515s // 7z a -mx=9 -myx=9 1.7z powerarc.exe
6,899,936 10.093s 0.515s // 7z a -mx=9 -mf=off -m0=bcj2:d40M -m1=lzma:a1:d26:lc8:pb2:lp0:fb273:mc999 ...
6,622,904 67.268s 0.686s // rz.exe a 1.rz powerarc.exe
6,599,964 18.767s 0.983s // 7zdll_vF5 x64flt3/deltb/lzma:mt2
6,471,954 27.050s 3.198s // 7zdll_vF5 x64flt3/deltb/plzma4:mt1
6,459,780 30.904s 3.666s // 7zdll_vF5 x64flt3/deltb/plzma
6,622,904 67.268s 0.686s // rz.exe a 1.rz powerarc.exe
6,607,610 69.889s 0.717s // rz.exe a 1.rz *.bin (dumped x64flt3 output from 7zdll)
6,653,256 69.358s 0.749s // rz.exe a 1a.rz *.bin (zeroed MZ/PE signatures)
6,511,817 70.060s 0.718s // rz.exe a 1.rz *.bin (dumped x64flt3+deltb output from 7zdll)
6,510,018 69.889s 0.671s // rz.exe a 1a.rz *.bin (zeroed MZ/PE signatures)
Observations:
1. x64flt3/deltaB/lzma gives better compression with 4x faster encoding and 30% slower decoding.
7zdll also has MT (including decoding), so decoding speed comparison is not really relevant.
2. x64flt3+deltaB is a better exe preprocessor than whatever is built into rz.
Also, rz uses MZ/PE exe signatures to enable some preprocessing, which can hurt compression (eg. on already preprocessed files).
Other tests also showed that srep is a better dedup filter.
3. rz may be a good integrated solution for some cases, but from developer p.o.v it doesn't really win over lzma.
@diskzip:
1. "DiskZIP standard data-set" consists of exe files (mostly windows update archives), unpacked and in all kinds of containers (msi/msu/msp, cab, 7z stored)
2. "DiskZIP's 7-Zip plug-in at the super-high compression settings." gives the same result as 7-zip -mx=9 -myx=9 -mqs -md=1536M
3. Its certainly an interesting dataset, which is good for testing exe preprocessing, deflate/LZX/cab/7z recompression, dedup preprocessing, and some other things.
But its hardly a relevant set for archiver users.