在 Linux 上 Lzma 和 Bzip2的对比压缩介绍
Lzma 代表 Lempel-Ziv-Markov 链算法。Lzma是一个类似于 bzip2 和 gzip 的压缩工具,用于压缩和解压缩文件。它往往比 bzip 压缩更快、更有效。众所周知,gzip 压缩比 比 bzip2(和 lzma)差。
在本文中,让我们了解如何使用 lzma,这是一个有效的压缩实用程序,它的压缩比明显更好,运行速度更快。
使用 lzma -c 压缩输入文本文件
$ lzma -c --stdout sample.txt >sample.lzma
使用 -d 选项解压 lzma 文件
$ lzma -d –stdout sample.lzma >sample.txt
bzip2和lzma压缩工具对比
为了了解 lzma 的有效性,让我们用 lzma 和 bzip2 压缩/解压缩一个 1MB 的 sample.txt 并比较结果。这些测试是在具有 1GB RAM 且处理器为 Pentium 4 的机器上完成的。
sample.txt 输入文件的大小:
$ ls -l sample.txt
-rw-r--r-- 1 bala bala 1048576 2010-05-14 19:43 sample.txt
注意:我们在每个压缩和解压缩命令前面都使用了 time 命令来获取命令的 CPU 使用率。
使用 bzip2 压缩 sample.txt
使用 bzip2 命令压缩输入文件,压缩过程中不需要该选项。
$ time bzip2 sample.txt
real 0m27.874s
user 0m13.981s
sys 0m0.148s
$ ls -l sample.txt.bz2
-rw-r--r-- 1 bala bala 1750 2010-05-14 19:43 sample.txt.bz2
bzip2压缩后,输出文件大小为1750 字节。
使用 bunzip2 解压 sample.txt
使用 bunzip2 实用程序解压压缩文件,它也不需要传递任何选项。
$ bunzip2 sample.txt.bz2
real 0m0.232s
user 0m0.128s
sys 0m0.020s
使用 lzma 压缩 sample.txt
现在,让我们使用带有以下选项的 lzma 命令压缩 sample.txt:
- -c 压缩
- –stdout 在标准输出中打印压缩输出
$ time lzma -c --stdout sample.txt >sample.lzma
real 0m2.035s
user 0m1.544s
sys 0m0.132s
$ ls -l sample.lzma
-rw-r--r-- 1 bala bala 543 2010-05-14 19:48 sample.lzma
压缩后,lzma生成的输出文件大小为543 字节,相对比 bzip2 命令小。此外,如上所示,lzma 使用的 CPU 时间比 bzip2 少得多。
使用 lzma 解压 sample.txt
使用带有以下选项的 lzma 命令解压缩 *.lzma 文件:
- -d 压缩
- –stdout 在标准输出中打印解压缩的输出
$ time lzma -d --stdout sample.lzma >sample.txt
real 0m0.043s
user 0m0.016s
sys 0m0.004s
如上所见,lzma做的解压比bzip2快很多倍
不同级别的 Lzma 压缩
- Lzma 提供从 -1 到 -9 的压缩范围。
- -9 是最高的压缩比,需要一定的时间和系统资源才能做到。这些比率不适用于减压。
- -1 是最低级别的压缩比,它运行得更快。
执行以下操作以使用低级压缩比进行快速 lzma 压缩:
$ lzma -1 -c --stdout sample.txt >sample.lzma
$ ls -l sample.lzma
-rw-r--r-- 1 bala bala 548 2010-05-14 20:47 sample.lzma
注意: -fast 是 -1 的别名。
-9 是最高级别的压缩比,比低级别的压缩比需要更长的时间。执行以下操作以使用高级压缩比进行密集压缩:
$ lzma -9 -c --stdout sample.txt >sample.lzma
$ ls -l sample.lzma
-rw-r--r-- 1 bala bala 543 2010-05-14 20:55 sample.lzma
注意: -best 是 -9 的别名。
- 点赞
- 收藏
- 关注作者
评论(0)