Archive: makensis blown up ...


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)


345 to 373 is not that big.. :igor:


The goal of NSIS is to create small installers- not to create a small makensis.exe.


well, my installers overhead increased by 1k :)


Why use zlib?

Anyway, I plan to get on that one (the zlib stub, not makensis.exe) soon enough.


Originally posted by Comm@nder21
well, my installers overhead increased by 1k :)
Time to buy a bigger hard drive. :D

sry, kichik, but who talked about zlib?

cant get your thoughts ...

@iceman:
oh yes, i should do that :D


Because only the zlib overhead grew in CVS. Its .rdata section always overflows.


im using lzma ...


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.


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 ...)

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.


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. :)

i know :)

this is why i did not change the /FINAL switch in any test as you may have seen ...