[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:33740] RFC: package の zstd化



こじま@田植えの合間の一休み,です.

# この時期の陽射しは8月よりも厳しいなぁ..

最近,圧縮形式の zstandard(zstd) が注目されていて,
Arch Linuxあたりはバイナリパッケージの圧縮形式を zstd に
変えたそうです.

https://archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/

上記では,サイズ増加は 0.8% だけど展開速度は 1300% 増し,とか書いてるものの,
手元でtxzを変換して調べた感じ,サイズは3〜4割増加するものの,
展開にかかる時間は1/4くらいで済むようでした.

$ du -h plamo{,_zstd}/00_base
363M	plamo/00_base
489M	plamo_zstd/00_base

$ du -h plamo{,_zstd}/02_devel
515M	plamo/02_devel
732M	plamo_zstd/02_devel

$ time tar xvf plamo/02_devel/llvm-12.0.0-x86_64-B2.txz -C ./Tmp
....
real	0m9.920s
user	0m9.757s
sys	0m1.421s

$ time tar xvf plamo/02_devel/llvm-12.0.0-x86_64-B2.tzst -C ./Tmp
....
real	0m2.697s
user	0m1.484s
sys	0m1.469s

手元でしばらくイジった感じ,確かに圧縮率は xz よりも劣るものの,
圧縮/展開の速さは魅力的で,大物パッケージの作成時間もだいぶ削減できるかな,
と思わせてくれました.

昨今では,以前ほどパッケージサイズの最小化に気を使う必要もないと思うので,
将来的な方向としてパッケージのデフォルトの圧縮方式を zstd にしていこうか,
と思っているのですがいかがなものでせう?

# ざっと見,installpkg{,2}, updatepkg, makepkg くらいをイジれば対応できそう

合わせて,その場合の拡張子はどうしたものでしょうね?
従来は tgz, tbz, txz の3文字形式だったので,
それに従うならば tzz かな,とも思ったものの,
ちょっとイマイチな気がするので,
手元では(仮)で tzst みたいにしています.

まぁ,Slackware の tgz から延々とこの方式にしているけど,
今となると拡張子の3文字縛りにはほとんど意味が無いので,
Arch Linux みたいに tar.xz とか tar.zstd みたいに
開いてしまってもいい気もするところ.

-------
こじま


Follow-Ups
[plamo:33741] Re: RFC: package の zstd化, KATOH Yasufumi

[検索ページ] [メール一覧]
Plamo ML 公開システム