
Zstandard(以下 zstd) は、FacebookのエンジニアYann Colletが開発した圧縮および伸張を行うためのツールです。zstd の売りは、現在のデファクトスタンダードである zlibよりも高速かつ高効率な、
圧縮アルゴリズムを使用している事にあります。圧縮率では、bzip2 や xz には劣りますが、同じ圧縮率で約3– 5倍、2倍高速に伸張出来るとアナウンスされています。
普及はまだしていないためデータの受け渡しには不向きかもしれませんが、ローカルの環境で多くのデータを圧縮して保存しているところではとても有用ではないかと思いますし、zstdに対応するソフトウェアも今後出てくるのではないかと思われます。
Zstandard は、以下のコマンドインストールする事が出来ます。
$ sudo apt install zstd
ファイルの圧縮は以下のように行います。
$ zstd filename もしくは、 $ zstd filename -o filename.zst
再帰的には実行できないので tar コマンドと併用します。
$ tar -cvf mydirectory.tar /mydirectory $ zstd mydirectory.tar
今回は、/usr/share/ 配下を tar で固めて圧縮を行ったところ、圧縮率では、bzip2、xz には劣るが、gzipと同等の圧縮率で、圧縮で約 9倍、伸長で約 4倍のスピードで実行出来たので、多くのファイルを圧縮する場合にとても有用である事が分かる。
$ tar -cvf share.tar /usr/share/ $ time zstd share.tar $ time gzip share.tar : $ ls -lh -rw-rw-r-- 1 taro taro 1008M 12月 29 12:08 share.tar -rw-rw-r-- 1 taro taro 433M 12月 29 12:28 share.tar.bz2 -rw-rw-r-- 1 taro taro 477M 12月 29 19:25 share.tar.gz -rw-rw-r-- 1 taro taro 345M 12月 29 12:08 share.tar.xz -rw-rw-r-- 1 taro taro 489M 12月 29 19:25 share.tar.zst
それぞれのコマンドを time コマンドを使って5回実行して real 時間の平均値を測定した。
圧縮時間(秒) 伸長時間(秒) 圧縮後サイズ
元ファイル 1008M
zstd 4.363 1.967 489M
gzip 39.799 8.569 477M
bzip2 123.939 62.884 433M
xz 410.567 31.538 345M
使用PC CPU : Core i5 4200M 2.50GHz
メモリ: 16G