- NSIS Discussion
- makensis blown up ...
Archive: makensis blown up ...
Comm@nder21
23rd October 2005 18:52 UTC
makensis blown up ...
just wanted to note, that the last few cvs updates have blown up my selfbuilt makensis.exe from 345 to 373 kbytes.
the cvs updates from the last months already caused the file growing from 343k to 345k.
maybe this is not intended by you, kichik, as you like small code :)
maybe its not possible to prevent that.
and nope, i did NOT change my building environment (ms vs tk 2003, psdk win03 server, scons 0.96.91)
Joel
23rd October 2005 20:54 UTC
345 to 373 is not that big.. :igor:
iceman_k
24th October 2005 00:54 UTC
The goal of NSIS is to create small installers- not to create a small makensis.exe.
Comm@nder21
24th October 2005 14:33 UTC
well, my installers overhead increased by 1k :)
kichik
24th October 2005 14:51 UTC
Why use zlib?
Anyway, I plan to get on that one (the zlib stub, not makensis.exe) soon enough.
iceman_k
24th October 2005 15:26 UTC
Originally posted by Comm@nder21
well, my installers overhead increased by 1k :)
Time to buy a bigger hard drive. :D
Comm@nder21
26th October 2005 17:00 UTC
sry, kichik, but who talked about zlib?
cant get your thoughts ...
@iceman:
oh yes, i should do that :D
kichik
27th October 2005 20:06 UTC
Because only the zlib overhead grew in CVS. Its .rdata section always overflows.
Comm@nder21
27th October 2005 20:35 UTC
im using lzma ...
kichik
27th October 2005 20:43 UTC
VC Toolkit puts some more strings into .rdata. That must be why the others grew as well. But whatever the reason is, it's unimportant as releases are compiled using VC6.
Comm@nder21
27th October 2005 20:48 UTC
jope, its ok.
i just tested through some packing methods, here are my results (a small tool ~60k):
###########################################################
SetCompressor /SOLID /FINAL lzma
EXE header size: 25088 / 35328 bytes
Install code: (32775 bytes)
Install data: (53869 bytes)
Compressed data: 29714 / 86644 bytes
CRC (0xD944EEC7): 4 / 4 bytes
Total size: 54806 / 121976 bytes (44.9%)
###########################################################
SetCompressor /FINAL lzma
EXE header size: 24576 / 34816 bytes
Install code: 4782 / 32775 bytes
Install data: 26171 / 464045 bytes
CRC (0xFFE3858B): 4 / 4 bytes
Total size: 55533 / 531640 bytes (10.4%)
###########################################################
SetCompressor /SOLID /FINAL bzip2
EXE header size: 27136 / 35328 bytes
Install code: (32775 bytes)
Install data: (53869 bytes)
Compressed data: 34844 / 86644 bytes
CRC (0xDF045325): 4 / 4 bytes
Total size: 61984 / 121976 bytes (50.8%)
###########################################################
SetCompressor /FINAL bzip2
EXE header size: 26624 / 35328 bytes
Install code: 5541 / 32775 bytes
Install data: 30106 / 464045 bytes
CRC (0xEBB7D67B): 4 / 4 bytes
Total size: 62275 / 532152 bytes (11.7%)
###########################################################
SetCompressor /SOLID /FINAL zlib
EXE header size: 26112 / 36352 bytes
Install code: (32775 bytes)
Install data: (53869 bytes)
Compressed data: 34195 / 86644 bytes
CRC (0xE13C57BF): 4 / 4 bytes
Total size: 60311 / 123000 bytes (49.0%)
###########################################################
SetCompressor /FINAL zlib
EXE header size: 25600 / 35840 bytes
Install code: 5750 / 32775 bytes
Install data: 28755 / 464045 bytes
CRC (0xA20CCD5E): 4 / 4 bytes
Total size: 60109 / 532664 bytes (11.3%)
###########################################################
seems, that /SOLID lzma is the best solution regarding packing ratio. maybe not regarding speed. (not tested the speed, because of the small size ...)
kichik
27th October 2005 21:03 UTC
Indeed, solid lzma should provide the best compression ratio in most cases.
BTW, the /FINAL switch doesn't affect the compression. It's only used for overriding any SetCompressor calls down the road. MakeNSISw uses this to force the menu selection the script.
iceman_k
28th October 2005 04:51 UTC
Originally posted by kichik
BTW, the /FINAL switch doesn't affect the compression. It's only used for overriding any SetCompressor calls down the road. MakeNSISw uses this to force the menu selection the script.
As does EclipseNSIS. :)
Comm@nder21
29th October 2005 16:51 UTC
i know :)
this is why i did not change the /FINAL switch in any test as you may have seen ...