GPLv3 migration reminder

Marc Lehmann schmorp at
Wed Dec 19 02:12:34 CET 2007

On Tue, Dec 18, 2007 at 11:28:15AM +0100, Simon Josefsson <simon at> wrote:
> different than for file compression -- the most important factor is
> probably de-compression speed and memory footprint.  LZO claims to have
> good properties here.  How does lzf stand?

Much faster and much less memory used (for compression, just the
hashtable, for decompression no extra memory is required except for
input and output buffers and the code is very small), except when lzo
offers a pure assembly implementation (liblzf has a similar but simpler
representation, but is only available as portable C code).

Of course, compressed size is larger for liblzf than for about any lzo
mode, but thats the trade-off.

For example, a tar of my /bin (10506240 bytes), compression, on my amd64:

   time lzop -1 <x.tar |wc -c
   user    0m0.204s

   time lzf <x.tar |wc -c
   user    0m0.132s


   lzop: 0m0.056s
   lzf:  0m0.048s

this is not a very good test, as buffering and other things only the
commandline tools do have quite some overhead, but gives a rough

lzf is tunable for speed and compression in various ways, the above is the
default (medium speed).

lzf is especially nice for repeated compressions (its not a stream
compressor), as it doesn't need to set up its internal state.

> It would be interesting to run tests on a few different compression
> libraries to see how they compare for network compression...

Every benchmark is always sooo surprising :->

What is not clear to me is how gnutls would use liblzf, purely as
in-memory cache, or would it also use it for network traffic (in which
case, wouldn't it have to support lzo for backwards compatibility, and
would it then not just be able to talk to itself?)

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      pcg at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the Gnutls-devel mailing list