Skip to content
Latchkey

zstd vs gzip: より高速な CI キャッシュとアーティファクトの圧縮

zstd(Zstandard)は同等の設定で一般に gzip より優れた速度と圧縮率を提供し、gzip はより古く、文字どおりどこでも利用できます。

圧縮は CI キャッシュの save/restore とアーティファクトのアップロード時間に直接影響します。zstd は速度と圧縮率のトレードオフに優れ、調整可能なレベルを持つモダンなアルゴリズムであり、gzip(DEFLATE)はあらゆるツールが理解する普遍的な baseline です。

zstdgzip
速度同等の圧縮率でより高速baseline
圧縮率通常より良い、調整可能なレベルそこそこ、調整は限定的
普及度広く利用可能、インストールが必要な場合ありデフォルトでどこでも
レベル広い範囲(超高速を含む)狭い範囲
典型的な CI での用途キャッシュ/アーティファクトの圧縮普遍的なフォールバック

zstd が優れている点

大きな CI キャッシュとアーティファクトでは、zstd は通常 gzip より高速に圧縮・展開しつつ、同等かそれ以上の圧縮率に達し、キャッシュの save/restore 時間を削減します。広いレベル範囲により速度とサイズを引き換えにできます。モダンな GitHub Actions のキャッシュツールは、利用可能なら既に zstd を優先します。

gzip が優れている点

gzip は事実上あらゆるシステムに存在し、あらゆるツールと言語ランタイムが理解するため、zstd がインストールされていることを保証できない場合や、下流のコンシューマが gzip しか受け付けない場合には安全なデフォルトです。小さなペイロードでは差はごくわずかです。

CI では

save/restore 時間が重要な大きなキャッシュとアーティファクトには zstd を優先しましょう。公式の Actions キャッシュは、存在すれば自動的に zstd を使い、そうでなければ gzip にフォールバックします。普遍性や固定の下流フォーマットが必要な場合は gzip を使いましょう。

結論

圧縮時間を削るには大きな CI キャッシュとアーティファクトに zstd を使い、普遍的な互換性や極小のペイロードには gzip にフォールバックしましょう。ほとんどのパイプラインのキャッシュでは、zstd がより高速なデフォルトです。

関連ガイド