[Libreoffice] Windows installer size reduction effort - the compression theory

Michael Meeks michael.meeks at novell.com
Mon Feb 21 01:42:32 PST 2011


Hi Kalman,

On Sun, 2011-02-20 at 15:15 +0100, Kálmán „KAMI” Szalai wrote:
> I am sure we can shrink the installer more with better compression

	Hah - so, of course Fridrich and Tor have looked into this - and
naturally you are right :-) there is a lot we can do. Clearly
compressing things badly first, and then well later (eg. zip, then lzma)
doesn't give the best results. That is particularly so when there are
lots of similarities in the eg. un-compressed ODF files we have
internally for eg. templates but minor differences that will have
hard-to-compress knock-on-effects in the compressed stream.

	The ideal would be to use only one level of compression - using the
best algorithm (LZMA) ie. NSIS, and nothing in the .cab file (which is
limited to various lame algorithms, and perhaps per-contained-file
compression, rather than per-whole-cab-file).

	Unfortunately, with the currently level of eg. template duplication,
this would give us a vast .cab file that would chew lots of space on the
target machine - though it might shrink our download nicely :-)

> What is your opinion? Can somebody test it on a real Windows build
> system? 

	The current balance is based on testing; quite possibly there is a
better set of compression options - but we need to work out what it is.
Our current settings are optimised for a multi-lang install as we ship
it. To change that I'd like to see a table:

New options 	Download/kb	Install/kb

	with the relevant sizes of both of these guys. That is just a matter of
running lots of long builds and comparing the output I guess, and I
suspect we will get something like a trade-off between these two values.

	Clearly, the 'real' solution is engineering to stop us having so much
pointless duplication ;-)

	HTH,

		Michael.

-- 
 michael.meeks at novell.com  <><, Pseudo Engineer, itinerant idiot




More information about the LibreOffice mailing list