[Zlib-devel] DEFLATE performance improvements

Jim Kukunas james.t.kukunas at linux.intel.com
Mon Nov 25 17:21:36 EST 2013

Hi Folks,

This patch series introduces a number of deflate performance improvements.
These improvements include two new deflate strategies, quick and medium,
as well as various improvements such as a faster hash function,
PCLMULQDQ-optimized CRC folding, and SSE2 hash shifting. 

The first patch adds a configure script check for determining the target
architecture. All optimizations added are encapsulated within preprocessor
checks which are selectively enabled based on target support. As such,
none of the patches in this series should have any effect on
non-x86{,_64} architectures.

The eleventh patch adds support for a new environmental variable ZLIB_LEVEL,
providing a simple method for system administrators to override the selected
compression level.

Obviously the performance is data dependent, however a few general trends:

Compression Corpora: Calgary, normal and large, Canterbury, normal and large,
                     and Silesia
Processor:  Intel i5-2530M @ 2.60 GHz with files stored in tmpfs to remove
            I/O overhead.
Compared with git commit 50893291621658f355bc5b4d450a8d06a563053d

Level 9 is about 22% faster with no change in compression.

Level 6 is about 50% faster with negligible change in compression.

Level 1 is about 71% faster with a sacrifice of about 30% compression.


Jim Kukunas
Intel Open Source Technology Center

More information about the Zlib-devel mailing list