FacebookのYann Colletによって開発された可逆圧縮アルゴリズム。Zstandard

LINEで送る
Pocket

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

LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください