LZ4能很好的支持多线程环境,获得更高的压缩和解压速度。
QuickLZ官网:http://www.quicklz.com/
QuickLZ is the world's fastest compression library, reaching 308MB/s per core.
QuickLZ自称是世界上最快的压缩算法,然而我们看到它和LZ4还是有差距的,特别是解压速度。
snappy项目:https://code.google.com/p/snappy/
snappy is developed by Google based on ideas from LZ77 and open-sourced in 2011.
It was designed to be very fast and stable, but not to achieve a high compression ratio.
Compression speed is 250MB/s and decompression speed is 500MB/s using a single threaded,
64-bit core i7 processor. The compression ratio is 20-100% lower than gzip.
snappy追求的是速度,压缩比并不高。
zlib库,可通过包含zlib.h使用。
zip原名为Deflate,仅支持一个LZ77的变种算法Deflate。
zip/unzip,后缀为.zip。zip也是Windows下常见的压缩格式。
gzip/gunzip是GNU程序,后缀为.gz。Web也常用GZIP压缩技术。
首先使用LZ77算法进行压缩,对结果再使用huffman编码进行压缩。
tar中用-z来调用:
tar -czf pic.tar.gz *.jpg
tar -xzf pic.tar.gz
bzip2/bunzip2,后缀为.bz2。
相比于gzip,压缩比更高,压缩效果比传统的LZ77/LZ78更好,但压缩速度较慢。
首先使用Burrows-Wheeler变换(BWT,块排序文本压缩),然后使用哈夫曼编码进行压缩。
tar中使用-j来调用:
tar -cjf pic.tar.bz2 *.jpg
tar -xjf pic.tar.bz2
compress/uncompress,后缀为.Z,现在已经不再流行了。
使用LZ78算法的变种LZW。
tar中使用-Z来调用。
rar/unrar,后缀为.rar。
rar格式较zip格式的压缩比高。
注意RAR非免费,是Windows下常见压缩格式,也有RAR for Linux。
rar a pic *.jpg // pic.rar
rar e pic.rar // pic
7-Zip,后缀为.7z。
和rar、zip一样,7z也是Windows下常见的压缩格式。
使用改良与优化后的LZ77算法LZMA、LZMA2,压缩比高于zip。
xz,后缀为.xz。
如果说LZ4是压缩速度之王,xz则是压缩比之王。
一般来说,用xz压缩后的文件,能比用gzip压缩的小30%,比用bzip2压缩的小15%。
主要使用LZMA2压缩算法。
tar不支持xz格式,xz / xz -d。
Quick comparison: single thread, Core i5-3340M @2.7GHz, using the Open-Source Benchmark by m^2 (v0.14.2)
compiled with GCC v4.6.1 on Linux Ubuntu 64-bits v11.10, using the Silesia Corpus.
对比当前流行的压缩工具,可以看到LZ4具有最快的压缩和解压速度,尽管压缩比一般。
1.snappy 从各个方面是相对均衡的压缩算法,使用场景比较多
2.lz4 是了解到各方面都比较优越的算法,
3.当然还有其他的 lzo,gz,zlib 等等,相比上面两种来说要差一些,当然特殊场景下可以择优选取,但是通用场景选 snappy 或者 lz4 是比较不错的。