Changing dpkg-deb default compression from gzip to lzma for Hardy
Scott Ritchie
scott at open-vote.org
Mon Dec 17 13:31:30 UTC 2007
Krzysztof Lichota wrote:
> Scott Ritchie napisaĆ(a):
>> I did some experimentation with my Wine package. Here's the filesize of
>> the latest .deb passing different options to dpkg-deb:
>>
>> 11081456 default
>> 10090930 bzip2
>> 7682608 lzma
>>
>> That's over a 30% reduction in bandwidth for me and my humble third
>> party repository.
>>
>> I've heard that lzma will be included by default in main for Hardy.
>> This is a very good idea. Changing package build scripts to manually
>> pass lzma compression using dh_builddeb -- -Z lzma would be very
>> tedious, however. In IRC pitti proposed that we do this centrally -
>> changing the default of dpkg-deb (currently gzip) seems to be the best
>> place for this.
>>
>> Thoughts?
>
> It is hard to judge best compression using only one package. It is
> possible that for other packages other compression schemes would be
> better. Have you run built other packages? ?The best would be to rebuild
> whole repo with new compression scheme and compare the results, so that
> it does not appear, for example, that packages stop fitting into one CD.
>
It's been shown that lzma is, in general, much better. If we happen to
find a specific case where it's not, then we can always set that package
to a non-default by tweaking the dh_builddeb line.
> Another thing is decompression time - on some machines the limiting
> resource is CPU, not bandwidth nor disk space and changing compression
> would mean significant burden as packages would be unpacked much longer
> and put more stress on system, making user experience unpleasant. This
> could be mitigated by running unpacking process with "nice", but AFAIK
> it is not the case now.
>
> If these 2 issues are addressed, I think it in general a good idea :)
>
I believe lzma has a fairly efficient decompression time. We should
note, however, that package installation time is one of the least
important places to optimize CPU usage - it's not user-interactive, and
is very frequently done after the user has stopped doing other things.
I don't have any data, however from my own personal experience with
moderately fast broadband it seems like most of my package installation
time is during downloading rather than unpacking/configure by a very
wide margin. A 30% reduction there would require a much larger amount
of time to unpack to make it not worthwhile.
More importantly, however, is that by using a better compression scheme
we greatly reduce the stress put on the mirrors, especially during
release time when package downloads get REALLY slow.
Thanks,
Scott Ritchie
More information about the Ubuntu-devel-discuss
mailing list