EXtremeZip : 极限压缩,使用 ruby实现的压缩软件
一个完整的文件压缩格式解决方案,用于作为对“Tar+Xz压缩模式”的替代品。目前以Ruby开发的原型已经具有完整功能,用于个人的日常用途中。以CBOR作为整个压缩文件格式的基础,以自己开发的VictoriaFreSh来替代Tar对目录树进行打包,以LZMA来对打包后内容进行压缩。利用多进程模式进行并行压缩,有效缩短压缩时间。使用的语言:Ruby。使用的技术:LZMA。
源代码在这里: https://github.com/hxcan/extremezip 。
gem install EXtremeZip
wget https://github.com/hxcan/extremezip/releases/download/2021.6.23/extremezip.w.exz
exuz extremezip.w.exz
exz extremezip.w
使用 VictoriaFreSh 来实现类似于 tar 的目录树打包和解包。
使用 ruby-lzma 来实现类似于 xz 的字节流压缩和解压缩。
使用 CBOR 作为整个压缩包的文件格式结构基础。
使用多进程模式来并行压缩,以减少压缩过程所需时间。
单层目录结构, 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 opinionsHxLauncher: Launch Android applications by voice commands