StupidBeauty
Read times:874Posted at:Sat Jun 10 06:10:21 2023 - no title specified

EXtremeZip : 极限压缩,使用 ruby实现的压缩软件

1 概述

一个完整的文件压缩格式解决方案,用于作为对“Tar+Xz压缩模式”的替代品。目前以Ruby开发的原型已经具有完整功能,用于个人的日常用途中。以CBOR作为整个压缩文件格式的基础,以自己开发的VictoriaFreSh来替代Tar对目录树进行打包,以LZMA来对打包后内容进行压缩。利用多进程模式进行并行压缩,有效缩短压缩时间。使用的语言:Ruby。使用的技术:LZMA。

源代码在这里: https://github.com/hxcan/extremezip

2 快速体验

gem install EXtremeZip

wget https://github.com/hxcan/extremezip/releases/download/2021.6.23/extremezip.w.exz

exuz extremezip.w.exz

exz extremezip.w

3 说明

使用 VictoriaFreSh 来实现类似于 tar 的目录树打包和解包。

使用 ruby-lzma 来实现类似于 xz 的字节流压缩和解压缩。

使用 CBOR 作为整个压缩包的文件格式结构基础。

使用多进程模式来并行压缩,以减少压缩过程所需时间。

4 性能比较

单层目录结构, 4371 个子文件,所有文件总大小 505.7MiB ,文件的尺寸都接近,平均大小 118.5KiB CPU Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz ,双核四线程。

使用 EXtremeZip 压缩,耗时 6 1 60 毫秒,压缩包尺寸 83.8MiB 。这个版本,使用了磁盘缓存,会牺牲一些时间性能,另一方面会利用多进程并行压缩,尽量缩短压缩所需时间。

exz StockDataTools/

使用 tar xz 压缩,耗时 9 40 380 毫秒,压缩包尺寸 84.3MiB 。使用默认参数,因而会使用单进程来进行压缩。

tar -caf StockDataTools.tar.xz StockDataTools

使用 tar xz 压缩,耗时 4 6 190 毫秒,压缩包尺寸 82.4MiB 。使用特殊参数,要求 xz 使用全部可用的 CPU 线程来进行压缩。

tar -c -I 'xz -T0'   -f StockDataTools.tar.xz StockDataTools

Your opinions

Your name:Email:Website url:Opinion content: