速度之王 — 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的优势在于压缩和解压速度,而不是压缩比。
速度之王 — LZ4压缩算法(三)的更多相关文章
- 速度之王 — LZ4压缩算法(一)
LZ4 (Extremely Fast Compression algorithm) 项目:http://code.google.com/p/lz4/ 作者:Yann Collet 本文作者:zhan ...
- 速度之王 — LZ4压缩算法(二)
LZ4 (Extremely Fast Compression algorithm) 项目:http://code.google.com/p/lz4/ 作者:Yann Collet 本文作者:zhan ...
- lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法
参考: http://www.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinal http://www.slideshare.ne ...
- BITMAP图片压缩算法三则--bilinear、nearest、cubic
原文:http://blog.chinaunix.net/uid-253932-id-3037805.html 工作需要,要弄截图且缩小.截图倒是好说,WIN API可以搞定,但是缩小且尽量不失真,这 ...
- Lucene4.2源码解析之fdt和fdx文件的读写——fdx文件存储一个个的Block,每个Block管理着一批Chunk,通过docID读取到document需要完成Segment、Block、Chunk、document四级查询,引入了LZ4算法对fdt的chunk docs进行了实时压缩/解压
前言 通常在搜索打分完毕后,IndexSearcher会返回一个docID序列,但是仅仅有docID我们是无法看到存储在索引中的document,这时候就需要通过docID来得到完整Document信 ...
- 【Unity3D技术文档翻译】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完结)
上一章:[Unity3D技术文档翻译]第1.8篇 AssetBundles 问题及解决方法 本章原文所在章节:[Unity Manual]→[Working in Unity]→[Advanced D ...
- 应用openvpn
本文目录:1.vpn概述 1.1 vpn应用场景 1.2 隧道协议 1.3 SSL VPN和IPSEC VPN2.openvpn搭建client-to-site的vpn 2.1 安装lzo和openv ...
- AssetBundle打包
为热更新打基础(xlua\tolua) 素材.源码链接:http://www.sikiedu.com/course/74/task/1812/show 一.AssetBundle的定义和作用 1,As ...
- FreeNAS-9.10虚拟机测试安装
虚拟机安装NreeNAS-9.10步骤 需求:网络监控磁盘要扩容 测试环境: CPU 内存 系统盘 共享盘 网卡 2核 2G 20G 20G 桥接 系统版本:FreeNAS-9.10 一.配置虚拟机 ...
随机推荐
- Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例
目录 前言 新建项目.建立数据库以及其它准备工作 新建express + ejs 项目:sampleEjs 创建数据库 修改package.json文件,安装session和mysql模块 样式和JQ ...
- php 一次性替换多个关键词
str_replace(find,replace,string,count) 参数 描述 find 必需.规定要查找的值. replace 必需.规定替换 find 中的值的值. string 必需. ...
- java设计模式--原始模型模式
简介 原始模型模式属于对象的创建模式.通过一个原型对象来指明要创建对象的类型,然后用复制原型对象的方法来创建出更多同类型的对象. Java所有的类都是从java.lang.Object类继承来的,Ob ...
- u1-nav-css
header:before, header:after ,.navigation:before, .navigation:after,.nav-row:before, .nav-row:after,. ...
- Html设置图标icon
html head添加: <link rel="icon" href="/favicon.ico" type="image/x-icon&quo ...
- 加载数据库驱动程序的方法和JDBC的流程
加载驱动方法 1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2. DriverManager.r ...
- load and initialize
NSObject是一切OC类的基类,所以我们必须对NSObject所有的方法有一个清楚的认识. + (void)load; 当类或者分类被加入到runtime时,load方法会被调用,也就是说在mai ...
- 判断一个数据是否存在于一个表中,Oracle中写自定义函数
create or replace function isExist(data in DataTypes) --DataTypes 为表中该数据的类型return Numberisv_flag num ...
- Hession矩阵与牛顿迭代法
1.求解方程. 并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难.利用牛顿法,可以迭代求解. 原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f' ...
- android中Handle类的用法
android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无 ...