Here are some (totally unscientific[1]) tests showing the performance of plzip on a multiprocessor machine.
Times are measured compressing or decompressing from RAM to /dev/null on an almost idle machine (load average of 2 to 4) and taking the best of three trials.
The compressors tested are:
plzip 1.4 (using lzlib 1.7)
pigz 2.3.3 (using zlib 1.2.7)
The file used in the tests is gcc-4.7.2.tar (529090560 bytes).
The machine used to run the tests is gcc110 from the GCC Compile Farm. 4x16x3.55 GHz IBM POWER7 / 64 GB RAM / IBM Power 730 Express server running Fedora 18 ppc64
Plzip provides a fast encoder, enabled by option '-0', which compresses slightly more and, depending on the number of threads, may be faster than pigz's default compression level:
time plzip -0cv gcc-4.7.2.tar > /dev/null gcc-4.7.2.tar: 4.951:1, 1.616 bits/byte, 79.80% saved, 529090560 in, 106857586 out. real 0m1.028s (515 MB/s) (uses 64 compression threads) user 0m39.675s sys 0m0.647s time pigz -cv gcc-4.7.2.tar > /dev/null (size of resulting gcc-4.7.2.tar.gz is 107520980) real 0m1.271s (416 MB/s) (uses 64 compression threads) user 0m37.812s sys 0m1.145s
Pigz does not implement parallel decompression. Therefore on machines with more than 4 processors plzip decompresses faster than pigz. On this machine plzip decompresses between 1.4 and 3 times faster than pigz, depending on compression ratio and number of threads:
time plzip -t gcc-4.7.2.tar.lz real 0m0.717s (738 MB/s) user 0m19.523s sys 0m0.095s time pigz -t gcc-4.7.2.tar.gz real 0m1.879s (282 MB/s) user 0m2.436s sys 0m0.232s
Plzip goes beyond pigz on compression ratio. Here are the times and file sizes for default and maximum compression levels:
time plzip -cv gcc-4.7.2.tar > /dev/null gcc-4.7.2.tar: 7.525:1, 1.063 bits/byte, 86.71% saved, 529090560 in, 70311133 out. real 0m15.557s (34 MB/s) (uses 32 compression threads) user 6m7.617s sys 0m3.642s time plzip -t gcc-4.7.2.tar.lz real 0m0.610s (867 MB/s) user 0m13.634s sys 0m0.167s time plzip -9cv gcc-4.7.2.tar > /dev/null gcc-4.7.2.tar: 8.589:1, 0.931 bits/byte, 88.36% saved, 529090560 in, 61601101 out. real 1m14.049s (7.1 MB/s) (uses 8 compression threads) user 8m45.674s sys 0m2.373s time plzip -t gcc-4.7.2.tar.lz real 0m1.300s (407 MB/s) user 0m8.447s sys 0m0.090s
[1] Paraphrasing John von Neumann, there's no sense in being precise when you don't even know what kind of hardware or compiler will use the person reading this. Performance varies widely, specially among multiprocessor machines.
Copyright © 2016 Antonio Diaz Diaz
You are free to copy, modify and distribute all or part of this article without limitation.
Updated: 2016-02-17