The compression libraries in this benchmark are rather unknown but represents the current top performers with respect to compression- and decompression speed.
The summary on the front page is the average of the values below, except for NotTheMusic.mp4 which is incompressible and special handled by QuickLZ which would make the bechmark unfair.
Except for QuickLZ C#, QuickLZ Java and zlib, this stand-alone benchmark program has been used:
bench.zip (last edited 26-Sep-2009)
If you want to try it yourself, simply run bench_win32.bat or bench_win64 on Windows or run 'make gcc' in the C directory on *nix (run the resulting executables with a file name as argument).
Many CPU architectures and operating systems are supported by this benchmark program.
In the benchmark below all timings start directly before function call and end immediately after function exit and is therefore excluding disk I/O and operating system calls. They are executed in REALTIME_PRIORITY_CLASS using just a single core/thread and with multiple passes to eliminate timer resolution errors. All libraries are compiled for 64-bit x64 using Visual C++ 2008 with the /Ox flag and without initial performance profiling and executed on an Intel Core i7 920.
QuickLZ Sharp was executed from Visual Studio 2005 with Ctrl+F5 to enable JIT optimization. QuickLZ Java was compiled and executed with Java 6 SE, just using javac CMain.java; java CMain from the command line. No use of profilers or special compiler options.
Note that zlib and LZO have levels with better compression ratio and possibly faster decompression speed which have not been benchmarked.
Also note that performance differ on 32-bit x86 and RISC architectures. Simply run bench.zip above on your own system.
| Intel Core i7 920 | |||||
| Level | Original and compressed size |
Compression Mbyte/s | Decompression Mbyte/s | ||
| proteins.txt | 7,085 KB | ||||
| QuickLZ 1.5.0 | 1 | 2,524 KB | 35.6% | 331 | 370 |
| QuickLZ 1.5.0 | 2 | 2,337 KB | 33.0% | 150 | 329 |
| QuickLZ 1.5.0 | 3 | 2,303 KB | 32.5% | 31 | 510 |
| QuickLZ Sharp 1.5.0 | 1 | 2,524 KB | 35.6% | 164 | 162 |
| QuickLZ Java 1.5.0 | 1 | 2,524 KB | 35.6% | 147 | 104 |
| LZF 3.1 | UF | 2,860 KB | 40.4% | 247 | 402 |
| LZF 3.1 | VF | 2,694 KB | 38.0% | 231 | 421 |
| FastLZ 0.1.0 | 1 | 2,725 KB | 38.5% | 209 | 454 |
| FastLZ 0.1.0 | 2 | 2,727 KB | 38.5% | 194 | 400 |
| LZO 1X 2.02 | 1 | 2,772 KB | 39.1% | 211 | 391 |
| zlib 1.22 | 1 | 2,075 KB | 29.3% | 58 | 280 |
| plaintext.txt | 2,919 KB | ||||
| QuickLZ 1.5.0 | 1 | 1,404 KB | 48.1% | 245 | 269 |
| QuickLZ 1.5.0 | 2 | 1,113 KB | 38.1% | 122 | 272 |
| QuickLZ 1.5.0 | 3 | 1,027 KB | 35.2% | 30 | 467 |
| QuickLZ Sharp 1.5.0 | 1 | 1,404 KB | 48.1% | 118 | 111 |
| QuickLZ Java 1.5.0 | 1 | 1,404 KB | 48.1% | 109 | 84 |
| LZF 3.1 | UF | 1,777 KB | 60.9% | 139 | 284 |
| LZF 3.1 | VF | 1,656 KB | 56.7% | 134 | 300 |
| FastLZ 0.1.0 | 1 | 1,702 KB | 58.3% | 129 | 310 |
| FastLZ 0.1.0 | 2 | 1,516 KB | 51.9% | 132 | 306 |
| LZO 1X 2.02 | 1 | 1,356 KB | 46.5% | 135 | 312 |
| zlib 1.22 | 1 | 1,095 KB | 37.5% | 56 | 190 |
| gdb.exe | 8,665 KB | ||||
| QuickLZ 1.5.0 | 1 | 3,966 KB | 45.8% | 270 | 296 |
| QuickLZ 1.5.0 | 2 | 3,653 KB | 42.2% | 119 | 264 |
| QuickLZ 1.5.0 | 3 | 3,483 KB | 40.2% | 29 | 469 |
| QuickLZ Sharp 1.5.0 | 1 | 3,966 KB | 45.8% | 115 | 134 |
| QuickLZ Java 1.5.0 | 1 | 3,966 KB | 45.8% | 116 | 88 |
| LZF 3.1 | UF | 4,535 KB | 52.3% | 177 | 355 |
| LZF 3.1 | VF | 4,390 KB | 50.7% | 165 | 353 |
| FastLZ 0.1.0 | 1 | 4,493 KB | 51.9% | 153 | 386 |
| FastLZ 0.1.0 | 2 | 4,389 KB | 50.7% | 147 | 347 |
| LZO 1X 2.02 | 1 | 4,092 KB | 47.2% | 141 | 374 |
| zlib 1.22 | 1 | 3,292 KB | 38.0% | 34 | 180 |
| flower.bmp | 17,684 KB | ||||
| QuickLZ 1.5.0 | 1 | 15,332 KB | 86.7% | 198 | 184 |
| QuickLZ 1.5.0 | 2 | 13,933 KB | 78.8% | 76 | 148 |
| QuickLZ 1.5.0 | 3 | 12,892 KB | 72.9% | 23 | 324 |
| QuickLZ Sharp 1.4.0 | 1 | 15,332 KB | 86.7% | 98 | 83 |
| QuickLZ Java 1.4.0 | 1 | 15,332 KB | 86.7% | 70 | 59 |
| LZF 3.1 | UF | 16,717 KB | 94.5% | 129 | 444 |
| LZF 3.1 | VF | 15,656 KB | 88.5% | 114 | 352 |
| FastLZ 0.1.0 | 1 | 15,774 KB | 89.2% | 94 | 382 |
| FastLZ 0.1.0 | 2 | 15,724 KB | 88.9% | 94 | 333 |
| LZO 1X 2.02 | 1 | 15,245 KB | 86.2% | 73 | 327 |
| zlib 1.22 | 1 | 11,426 KB | 64.6% | 22 | 113 |
| northwind.mdf | 2,688 KB | ||||
| QuickLZ 1.5.0 | 1 | 622 KB | 23.2% | 500 | 672 |
| QuickLZ 1.5.0 | 2 | 552 KB | 19.4% | 187 | 530 |
| QuickLZ 1.5.0 | 3 | 521 KB | 19.4% | 43 | 809 |
| QuickLZ Sharp 1.4.0 | 1 | 622 KB | 23.2% | 169 | 169 |
| QuickLZ Java 1.4.0 | 1 | 622 KB | 23.2% | 192 | 140 |
| LZF 3.1 | UF | 706 KB | 26.3% | 328 | 497 |
| LZF 3.1 | VF | 682 KB | 25.4% | 320 | 492 |
| FastLZ 0.1.0 | 1 | 727 KB | 27.0% | 278 | 678 |
| FastLZ 0.1.0 | 2 | 635 KB | 23.6% | 267 | 643 |
| LZO 1X 2.02 | 1 | 601 KB | 22.4% | 284 | 774 |
| zlib 1.22 | 1 | 491 KB | 18.6% | 103 | 408 |
| NotTheMusic.mp4 | 9,603 KB | ||||
| QuickLZ 1.5.0 | 1 | 9,603 KB | 100% | 225 | 5390 |
| QuickLZ 1.5.0 | 2 | 9,603 KB | 100% | 80 | 5174 |
| QuickLZ 1.5.0 | 3 | 9,603 KB | 100% | 29 | 5314 |
| QuickLZ Sharp 1.4.0 | 1 | 9,603 KB | 100% | 107 | 1041 |
| QuickLZ Java 1.4.0 | 1 | 9,603 KB | 100% | 78 | 1660 |
| LZF 3.1 | UF | 9,518 KB | 99.1% | 134 | 877 |
| LZF 3.1 | VF | 9,528 KB | 99.2% | 132 | 865 |
| FastLZ 0.1.0 | 1 | 9,538 KB | 99.3% | 94 | 788 |
| FastLZ 0.1.0 | 2 | 9,526 KB | 99.2% | 140 | 774 |
| LZO 1X 2.02 | 1 | 9,238 KB | 96.2% | 63 | 1878 |
| zlib 1.22 | 1 | 9,187 KB | 95.7% | 18 | 374 |