Archive: compress ratio compare since v1.61


compress ratio compare since v1.61
I found the v1.7b and v1.7 have the best compress
and when the total uncompressed files'size is lager than 2 M
the install file size larger than that build by makecab.exe
in ieak6.
http://download.microsoft.com/downlo...n-us/ieak5.exe

v1.61
EXE header size: 22016 / 36864 bytes
Install code+strings: 2300 / 4322 bytes
Install data: 1046814 / 1346658 bytes
Uninstall code+data+strings: 856 / 1331 bytes
CRC (0x298B57CB): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071990 / 1389179 bytes (77.2%)
v1.62

EXE header size: 22016 / 36352 bytes
Install code+strings: 2308 / 4332 bytes
Install data: 1046814 / 1346658 bytes
Uninstall code+data+strings: 865 / 1340 bytes
CRC (0x28546139): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1072007 / 1388686 bytes (77.2%)
v1.66
EXE header size: 21504 / 36352 bytes
Install code+strings: 2356 / 4337 bytes
Install data: 1046814 / 1346658 bytes
Uninstall code+data+strings: 858 / 1333 bytes
CRC (0x24E920AA): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071536 / 1388684 bytes (77.2%)

v1.67
EXE header size: 21504 / 36352 bytes
Install code+strings: 2354 / 4336 bytes
Install data: 1046814 / 1346658 bytes
Uninstall code+data+strings: 856 / 1331 bytes
CRC (0x1B845337): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071532 / 1388681 bytes (77.2%)
v1.7b
EXE header size: 20992 / 35840 bytes
Install code+strings: 2357 / 4336 bytes
Install data: 1046798 / 1346658 bytes
Uninstall code+data+strings: 851 / 1328 bytes
CRC (0xE8A11CD5): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071002 / 1388166 bytes (77.2%)
v1.7b2
EXE header size: 20992 / 34816 bytes
Install code+strings: 2362 / 4337 bytes
Install data: 1046798 / 1346658 bytes
Uninstall code+data+strings: 850 / 1327 bytes
CRC (0x7911A388): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071006 / 1387142 bytes (77.2%)

v1.7b3
EXE header size: 20992 / 34816 bytes
Install code+strings: 2364 / 4337 bytes
Install data: 1047429 / 1346658 bytes
Uninstall code+data+strings: 850 / 1327 bytes
CRC (0xA719FDF0): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071639 / 1387142 bytes (77.3%)
v1.7
EXE header size: 20992 / 34816 bytes
Install code+strings: 2357 / 4334 bytes
Install data: 1047429 / 1346658 bytes
Uninstall code+data+strings: 850 / 1327 bytes
CRC (0xB0B4CDFC): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071632 / 1387139 bytes (77.3%)
v1.8b

EXE header size: 20992 / 34816 bytes
Install code+strings: 2359 / 4314 bytes
Install data: 1047429 / 1346658 bytes
Uninstall code+data+strings: 845 / 1322 bytes
CRC (0xFC1C9936): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 1071629 / 1387114 bytes (77.3%)


very interesting maybe this proves that NSIS is thae best thing since sliced bread.


I wrote a hack for an older version of NSIS that used makecab (well the compress.exe tool which is basically the same only it is for single files) to compress the data block at end of makensis not zlibbing. THe good thing about this is that zlib is no longer needed in the exe head as LZInit, LZSeek, LZRead, LZClose are used. The downsize is that the whole of the install section has to dumped out to a new file prior to the install section as I cant seem to get LZInit to work on 'files within files' (even after using SetFilePointer to the beginning of the data section - LZInit seems to automatically set the file pointer to the beginning of the file :( )..

other than that it works quite well..

From the function names, you can guess Lempel-Ziv compression is used.. the problem is that NSIS is open source and I think LZ compression is patented or something.

btw to save yourself downloading the full ieak6, you just need CAB-SDK (I think that was it).