Linux 六大压缩算法横评:Ubuntu 19.10 最终选择 LZ4
嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题!
在近日发布的 Canonical 官方博文 中,来自内核团队的 Ubuntu 工程师 Colin Ian King 介绍了 Ubuntu 19.10 操作系统启动方面的一些改进。
Ubuntu 19.10(Eoan Ermine)操作系统计划于 10 月 17 日正式发布,工程师在文章中表示通过过去数月的努力已经找到了更快的压缩/解压缩算法。
Ubuntu Kernel 团队对 initramfs 的六种压缩方法进行了基准测试,包括 BZIP2,GZIP,LZ4,LZMA,LZMO 和 XZ,以测量 Linux 内核的加载时间以及解压缩时间。主要使用 x86 TSC(Time Stamp Counter)在 x86 设备上进行基准测试。
根据测试结果,团队发现 LZ4 是 Ubuntu 19.10(Eoan Ermine)的最佳压缩/解压缩方法,这是因为 BZIP2,LZMA 和 XZ 的解压缩速度很慢,因此在进一步的测试中很快就被排除了。在压缩大小方面,GZIP 效果最好,能将文件压缩至最小,其次是 LZO(大约比 GZIP 大 16%)和 LZ4(大约比 GZIP 大 25%),而在压缩时间方面,LZ4 比 GZIP 快 7 倍,LZO 比 GZIP 快约 1.25 倍,因此可以看到 GZIP 的速度不够快。
Colin Ian King 表示:“即使在慢速运行的传输媒介和慢速 CPU 上,LZ4 内核的更长加载时间也会带来更快的压缩时间。不过伴随着媒介传输速度的提升,GZIP,LZ4 和 LZO 之间的加载时间差减小,压缩时间变化来看 LZ4 是最大的赢家 。”
自 Ubuntu 18.10(Cosmic Cuttlefish)发布以来,LZ4 已经在 Ubuntu 中默认使用,但看起来 Canonical 将保留 Ubuntu 19.10(Eoan Ermine)操作系统中内核和 initramfs 的默认压缩/解压缩方法。
LZ4 是一种无损数据压缩算法,可提供极快的压缩和解压缩速度。在 Ubuntu 19.10(Eoan Ermine)中,LZ4 将用于 x86(64 位)、PPC64le(PowerPC 64 位 Little Endian)和 s390(IBM System z)内核。