速度之王 — LZ4压缩算法(三)

LZ4使用

make / make clean

得到可执行程序:lz4、lz4c

Usage:

./lz4 [arg] [input] [output]

input : a filename

Arguments :

-1 : Fast compression (default)

-9: High compression

-d : decompression (default for .lz4 extension)

-z : force compression

-f : overwrite output without prompting

-h/-H : display help/long help and exit

LZ4的输入只能为文件,不能为文件夹,毕竟一般压缩工具都不提供tar功能的。

-b file1 [file2] 可以用来测量压缩和解压速度。

比较遗憾的是,没有看可以指定线程数的参数,所以接下来没有测试多线程环境下的效果。

LZ4测试

Xeon E5504 @ 2.00GHz,X84_64,8核CPU,只用了一个。

(1) 速度

可以看到压缩速度和解压速度都很快,而且对日志文件的压缩比相当高。

(2) 压缩比

原始文件为linux-3.6.10.tar,大小为467MB。

用gzip压缩后为linux-3.6.10.tar.gz,大小为101MB,压缩比为21.62%。

用bzip2压缩后为linux-3.6.10.tar.bz2,大小为79MB,压缩比为16.91%。

用lz4压缩后为linux-3.6.10.tar.lz4,大小为166MB,压缩比为35.38%。

用lz4_HC压缩后为linux-3.6.10.tar.lz4,大小为117MB,压缩比为25.03%。

可以看到在压缩比上:lz4 < lz4_HC < gzip < bzip2。

然而在压缩过程中,笔者可以感觉到lz4的压缩时间比其它的要少一个数量级,几乎是瞬间完成:)

所以LZ4的优势在于压缩和解压速度,而不是压缩比。

时间: 2024-10-16 01:20:37

速度之王 — LZ4压缩算法(三)的相关文章

lucene源代码学习之LZ4压缩算法在lucene中应用

LZ4算法又称为Realtime Compression Algorithm,在操作系统(linux/freeBSD).文件系统(OpenZFS).大数据(Hadoop).搜索引擎(Lucene/solr).数据库(Hbase)--都可以看到它的身影,可以说是一个非常通用的算法.LZ4最突出的地方在于它的压缩/解压速度. 基础知识 理解Lucene中LZ4算法的实现,需要有以下两点基础知识: 1. 理解Lucene里面的packedInts. 关于PacedInts,可以参考http://sbp

Lucene4.2源码解析之fdt和fdx文件的读写——fdx文件存储一个个的Block,每个Block管理着一批Chunk,通过docID读取到document需要完成Segment、Block、Chunk、document四级查询,引入了LZ4算法对fdt的chunk docs进行了实时压缩/解压

前言 通常在搜索打分完毕后,IndexSearcher会返回一个docID序列,但是仅仅有docID我们是无法看到存储在索引中的document,这时候就需要通过docID来得到完整Document信息,这个过程就需要对fdx/fdt文件进行读操作.为了更清楚地了解fdx/fdt文件的作用,本文把fdx/fdt文件的读和写整合到了一起,尽管这在Lucene中是两个分开的过程. 1. 索引生成阶段 索引生成阶段包含着一个复杂的过程,所以了解本文前最好对Lucene的索引架构有一定的了解,可以参考博

Java不同压缩算法的性能比较

本文将会对常用的几个压缩算法的性能作一下比较.结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作. 文中进行比较的算有: JDK GZIP ——这是一个压缩比高的慢速算法,压缩后的数据适合长期使用.JDK中的java.util.zip.GZIPInputStream / GZIPOutputStream便是这个算法的实现. JDK deflate ——这是JDK中的又一个算法(zip文件用的就是这一算法).它与gzip的不同之处在于,你可以指定算法的压缩级别,这样你可以在压缩时间和输出文件大

压缩算法java

本文将会对常用的几个压缩算法的性能作一下比较.结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作. 文中进行比较的算有: JDK GZIP --这是一个压缩比高的慢速算法,压缩后的数据适合长期使用.JDK中的java.util.zip.GZIPInputStream / GZIPOutputStream便是这个算法的实现. JDK deflate --这是JDK中的又一个算法(zip文件用的就是这一算法).它与gzip的不同之处在于,你可以指定算法的压缩级别,这样你可以在压缩时间和输出文件大

Linux 5.7 内核正在支持 Zstd 压缩算法

导读 Linux 5.6 引入了可选的 F2FS 透明数据压缩支持,并通过 LZO 和 LZ4 压缩算法实现.现在,Linux 5.7 内核正在支持 Zstd 压缩算法. F2FS 的维护者 Jaegeuk Kim 合并了一个由华为工程师提交的用于支持 Zstd 压缩算法的补丁,以及对文件系统级别的压缩支持. 这就意味着,在 Linux Kernel 5.7 及更高版本上,在挂载 F2FS 文件系统时设置 compress_algorithm=zstd 可以启用 Zstd 压缩功能. 对 Zst

RC ORC Parquet 格式比较和性能测试

RC ORC Parquet 格式比较和性能测试 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 为什么要比较这三者 为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式 对于ORC性能的评测,Hortonworks发过一

Deepgreen DB简介(转)

原文链接 Deepgreen DB 全称 Vitesse Deepgreen DB,它是一个可扩展的大规模并行(通常称为MPP)数据仓库解决方案,起源于开源数据仓库项目Greenplum DB(通常称为GP或GPDB).所以已经熟悉了GP的朋友,可以无缝切换到Deepgreen. 它几乎拥有GP的所有功能,在保有GP所有优势的基础上,Deepgreen对原查询处理引擎进行了优化,新一代查询处理引擎扩展了: 优越的连接和聚合算法 新的溢出处理子系统 基于JIT的查询优化.矢量扫描和数据路径优化 下

Android开发技术周报 Issue#15

教程 Android Studio系列教程五--Gradle命令详解与导入第三方包 Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看.编译并导入第三方开源项目的方法. 打造极致Material Design动画风格Button 在我的文章中曾经有两篇关于Material Design风格的按钮实现.在第一章中只是简单的实现了动画的波纹效果,而在第二篇中对此进行了一定的扩充与优化,最后实现可以自动移动到中心位置

一、AssetBundle入门到掌握

1-学前必读 为热更新打基础(xlua\tolua) 学习方法:跟着老师实操. 2-AssetBundle的定义和作用 看官方文档:安装有道词典的记事本功能 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载: 2,AssetBundle自身保存着互相的依赖关系: 3,压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输: 4,把一些可以下载内容放在AssetBundle里面,可以减少安装包的大小: 3-什么事Asset