- NSIS Discussion
- competition
Archive: competition
rjstephens
14th February 2004 04:45 UTC
competition
It's incredible what competition can do - Guess which installer system just introduced LZMA? Inno! NSIS still has more features and will still be used for most of my work, but Inno is trying very hard to make their software more viable. Apparently, the overhead has been reduced by 150k, even though two DLLs have now been added.
I wonder how long it will take for the commercial installers to integrate LZMA, now that the two biggest free ones have.
Joost Verburg
14th February 2004 13:15 UTC
The Inno Setup core does not include LZMA compression, they just include the huge 7-zip DLL files.
The LZMA decompression system of NSIS is only 5 KB large, while these DLL files are about 150 KB large.
kichik
14th February 2004 14:19 UTC
The Inno package installer size was reduced by 150kb, not the overhead. The overhead grew by the size of the uncompression DLL, probably compressed.
Did anyone take a look at the source code used to interface with the DLL?
Could anyone find the source code to the DLLs islzma.dll and isunlzma.dll? I can't find them anywhere.
mlaan
14th February 2004 14:22 UTC
If you want to bash Inno Setup, at least be honest. It doesn't 'just include' some 7 zip dlls nor is the size of the decompression code inside a built Setup anywhere near 150 kb.
Joost Verburg
14th February 2004 14:39 UTC
Of course I don't want to bash Inno Setup. People should just use the software they like most.
It is true that Inno Setup includes 7-zip DLL's. It's written in Delphi so they can't include it in the core.
mlaan
14th February 2004 15:43 UTC
Originally posted by Joost Verburg
It's written in Delphi so they can't include it in the core.
Not true: if you want to, you can make Delphi link directly with C/C++ code too.
Joost Verburg
14th February 2004 16:44 UTC
Yes, using a dynamic link library (DLL).
Quote from the Inno Setup site:
By using LZMA compression, the installer for Inno Setup itself is now 150 KB smaller than before, despite the inclusion of two new DLLs.
So they include 7-zip DLL's for LZMA compression right?
mlaan
14th February 2004 16:51 UTC
No, I meant Delphi can link to an .obj too
Joost Verburg
14th February 2004 16:59 UTC
Right, so Inno Setup statically links these libraries. Then I misunderstood this quote.
My point was that NSIS contains a custom optimized LZMA decompressor, which is much smaller than the other decompression libraries available.
Because this quotes says that two new DLLs are included, I assumed that these two DLLs (146 KB) were included. It's it's only one of them the size is 50 KB, still 10 times as large.
mlaan
14th February 2004 17:05 UTC
My point was that NSIS contains a custom optimized LZMA decompressor, which is much smaller than the other decompression libraries available.
It's slightly smaller, not much smaller. :)
(Arg: stop editing your posts please. The 50 kb is before compression.)
Joost Verburg
14th February 2004 17:08 UTC
NSIS's 5 KB is also uncompressed.
kichik
14th February 2004 17:08 UTC
InnoSetup's LZMA decompressiong DLL is 45.5KB, NSIS's inregrated decompression library is less than 5KB. Those are the facts. The entire overhead of NSIS with LZMA decompression is 34.5KB. You do the math.
kichik
14th February 2004 17:11 UTC
Just as a reminder, the original subject was summed by:
I wonder how long it will take for the commercial installers to integrate LZMA, now that the two biggest free ones have.
mlaan
14th February 2004 17:12 UTC
My math: both LZMA implementations are so small they do not noticably impact the size of a setup differently, especially since the actual LZMA compression is so good. Therefore Joost's initial reply which seems to want to say you can't compare NSIS's LZMA support with Inno Setup's LZMA support is IMHO unfair.
kichik
14th February 2004 17:21 UTC
Joost was just stating a fact and later added:
Of course I don't want to bash Inno Setup. People should just use the software they like most.
As for my reply. It was directed at:
It's slightly smaller, not much smaller.
I apologize if some misunderstanding or some statement hurt your feelings.
Now please drop this subject and return to the main discussion or I'll have to lock this thread before it derails even more.
rainwater
14th February 2004 20:03 UTC
FYI, Inno has supported 7-zip for about 5 or 6 months using the ide ISTool so its not anything they have added because of NSIS. It was probably added for the same reason NSIS added it (because its pretty darn good).
rjstephens
15th February 2004 02:15 UTC
Well I still use NSIS in 98% of cases anyways because of the smaller overhead, but in the rare event that I need to span accross multiple CDs, I will now use Inno. A difference between a 34k overhead and a 340k overhead isn't really going to matter that much when I'm installing over 1GB of files.
Joost Verburg
15th February 2004 15:23 UTC
There was probably a bit of miscommunication here when I called the 7-zip libraries used by Inno Setup "huge", sorry for that :)
People who are no regular forum visitors might not know that we NSIS developers are really focused on making software as small as possible, so we call something "huge" while other people will probably think we're exaggerating a bit :D
mlaan
15th February 2004 17:51 UTC
Originally posted by Joost Verburg
There was probably a bit of miscommunication here when I called the 7-zip libraries used by Inno Setup "huge", sorry for that :)
Ok :)
BTW something interesting happened in the meantime: Igor released a new set of LZMA files to replace the existing C++ code. The decoder .obj is now 2 kb in Inno Setup.
Joost Verburg
15th February 2004 18:48 UTC
Yep I've seen the new LZMA SDK. It seems to be quite good, totally written in C, just like the NSIS VM.
Is the decompression speed still good when using the smallest version?
mlaan
15th February 2004 18:54 UTC
Try the Inno Setup CVS version and see for yourself :)