Because behind these compression tools, there are actually several libraries. Another word, most of them have same kernel. In this article, I'll have a simple introduction about 4 tools and their libraries, followed by a test metric.
Compress is a Unix compression utility based on the LZC compression method, which is an LZW implementation using variable size pointers as in LZ78.
The uncompress utility will restore files to their original state after they have been compressed using the compress utility. If no files are specified, the standard input will be uncompressed to the standard output.
More detail about LZW, see the following linkshttp://web.mit.edu/6.02/www/s2012/handouts/3.pdf
More detail in
Along with zip, gzip uses zlib library
bzip2 is a freely available, patent free, high-quality data compressor, uses Burrows–Wheeler algorithm. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression. bzip2's command line flags are similar to those of GNU Gzip, so if you know how to use gzip, you know how to use bzip2More detail in
Compression speed: 2 MB/s on 2 GHz dual-core CPU.
20-30 MB/s on 2 GHz Intel Core2 or AMD Athlon 64.
1-2 MB/s on 200 MHz ARM, MIPS, PowerPC or other simple RISC CPU.
Small memory requirements for decompression: 8-32 KB + DictionarySize
Small code size for decompression: 2-8 KB (depending on speed optimizations)
More details in following link
Note2: one of other way doing compression is to split compression process into two steps, like rzip, which is huge-scale data compression software designed around initial LZ77-style string matching on a 900 MB dictionary window, followed by bzip2-based Burrows–Wheeler transform (BWT) and entropy coding (Huffman) on 900 kB output chunks. lrzip is its improved version, but doesn't compatible with rzip's.
Note3: Lots of other compression tools support not only one format, like 7za, it supports 7z, ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats
Note4: Some tools support multiple threads compression, like lbzip2, pigz and pbzip2 etc.. I'll have another article for this