圧縮ベンチマーク

自分のファイルを gzip、Brotli、Zstandard で好きなレベルで圧縮し、サイズ、圧縮率、速度、メモリをブラウザー内で比較します。

入力内容とファイルはブラウザ内に留まります

ファイルとコーデック

圧縮するファイル

任意のローカルファイル。ファイルはこのデバイスから出ません。

コーデックとレベル
レベル 0–9
レベル 0–11
レベル 1–22

このブラウザーの CompressionStream。レベル設定はありません。

各コーデックとレベルは、メモリ上のサンプルのコピーに対してそれぞれ専用の Web Worker で実行されます。何もアップロード・保存されません。

高レベルは低速です: Brotli 10–11 や Zstandard 19–22 は 64 MiB で数分かかることがあります。小さめのサンプルから始めてください。

結果

ファイルを選ぶと、各コーデックでどれだけ小さく、どれだけ速く圧縮できるかが表示されます。

このページの内容

圧縮ベンチマークは、選んだファイルを gzip、Brotli、Zstandard の複数レベルで圧縮し、圧縮後サイズ、圧縮率、削減量、圧縮・展開速度、WebAssembly メモリを並べて表示します。どのコーデックとレベルがあなたのデータに合うかを、アップロードせずにあなた自身のデータで確かめられます。

詳細な機能

ファイルの先頭 1〜256 MiB をメモリに読み込み、各コーデックとレベルを新しい Web Worker で実行します。gzip は zlib 互換の Deflate、Brotli は 4 MiB ウィンドウ、Zstandard はチェックサム付きで、いずれも WebAssembly にコンパイルされています。比較用にブラウザー自身の CompressionStream gzip も使います。計測するのはコーデックの呼び出しだけです。

検証をオンにすると、各結果を別の新しい Worker で展開し、長さと CRC-32 で元データと比較します。これにより展開速度も計測されます。各実行は空の WebAssembly ヒープから始まるため、メモリ列にはそのコーデックとレベルが実際に必要とした量が表示されます。

表では最小の出力と最速の圧縮が強調表示され、生の数値を含む CSV としてダウンロードできます。どの行からでも、その設定でファイル全体を圧縮し、.gz、.br、.zst として保存できます。

実用例

JSON API レスポンス: 16 MiB の JSON エクスポートでは、gzip 6 が約 8×、Brotli 9 が 11× 近く、Zstandard 3 は gzip に近いサイズを数倍の速度で実現。

ログ用のレベル選び: Zstandard のレベル 1、3、9、19 を比べると、CPU 時間を増やしてもサイズがほとんど減らなくなる境目がわかります。

圧縮済みデータ: JPEG や ZIP は 1.0× 前後の圧縮率になり、再圧縮は無駄だとわかります。

静的アセット: サーバーで事前圧縮アセットを設定する前に、バンドル済み JavaScript ファイルで Brotli 11 と gzip 9 を比較。

このツールの使い方

  1. ファイルを選ぶ

    任意のファイルをドロップまたは選択します。既定のコーデックとレベルですぐにベンチマークが始まります。

  2. コーデックとレベルを選ぶ

    コーデックをオン・オフし、1、6、9 のようなレベルや 3-5 のような範囲を入力します。ファイルのどれだけをテストするかも選べます。

  3. 実行して比較する

    「ベンチマークを実行」を選びます。各実行が終わるたびに行が追加され、最小と最速の結果が強調表示されます。

  4. 保存する

    表を CSV でダウンロードするか、行の「保存」を選んでその設定でファイル全体を圧縮します。

ヒントとベストプラクティス

  • テキスト、JSON、CSV、ログはよく圧縮できますが、画像、動画、アーカイブはほとんど小さくなりません。
  • Brotli と Zstandard は高レベルでは圧縮よりも展開がはるかに速く、一度圧縮して何度も読むファイルに向いています。
  • 計測時間はデバイスとブラウザーによって変わります。同じマシンでの実行同士を比較してください。
  • アーカイブの中身を見たり展開したりするには、「アーカイブエクスプローラー」を使ってください。

次の改善にご協力ください

次に何を改善すべきですか?

候補を1つ選んでください。これらは案であり、提供を約束する機能ではありません。

1つ選択してください

投票では選択肢だけを匿名の集計値として送信します。入力内容、ファイルデータ、URL、Cookie、識別子は含まず、このブラウザーにも保存しません。ページを再読み込みすると再度投票できます。