【追記 2026-10-16】いまの速さ — v1.9.0「Full Spectrum」で測り直しました
本文の
uvf・uvpの数字は、開発版 Wide Field(1.7.1.6・2026年9月)のものです。同じ Mac・同じファイルを、いまの版 v1.9.0(2026年10月14日)で測り直しました。
3GB を「東京」で探す 本文(1.7.1.6) いま(v1.9.0) uvp:.uwvzにしたあと(2回目から)0.31〜0.40秒 0.15〜0.16秒(約2倍速く) 同じく 1GB 0.14〜0.16秒 0.10秒 uvpの1回目(平文から.uwvzを作る・検索込み)3.59秒 3.84秒(ほぼ同じ) uvf:圧縮のまま探す(1回目・7形式)0.89〜23.48秒 0.86〜22.32秒(ほぼ同じ。どの形式も rg -zと同等)「圧縮したほうが平文より速く探せる」という本文の結論は、v1.9.0 でも同じです(
rg -zの 3GB・1回目:lz4 0.94秒・gz 1.32秒・zst 1.62秒・xz 1.67秒・br 2.49秒 対 平文 3.31秒)。詳しくはベンチマークとv1.9.0「Full Spectrum」の記事。
ログは、そのまま置いておけません。古いものから圧縮して残します。このとき選ぶ形式を、どれだけ縮むかだけで決めていないでしょうか。
同じファイルを7つの形式で圧縮して、ripgrep で1語を探す時間を測りました。**結果は、縮み方の順番と速さの順番が一致しません。**そして多くの形式では、圧縮したファイルのほうが、平文より速く探せました。
おことわり: 記事の中の
uvf・uvp・.uwvzの数字は、公開前の開発版 Wide Field(1.7.1.6) で測ったものです。Wide Field は 2026年9月29日に v1.7.3.6 として公開しました(追記)。公開版で測った数字は 実測まとめ にあります。形式どうしの比較(rg -zの数字)は、公開されている ripgrep 15.2.0 で測っています。
3GB を1語で探す
2,937.7MB のテキスト1本と、それを7形式で圧縮したものです。語は「東京」、どれもキャッシュを捨てた直後の1回目です。
| 形式 | 大きさ | 元の何% | rg -z で探す | 平文比 | uvf で探す | rg 比 |
|---|---|---|---|---|---|---|
| bz2 | 250.7MB | 8.5% | 24.93秒 | 1/7.5 | 23.48秒 | 1.06倍 |
| lzma | 254.1MB | 8.7% | 10.71秒 | 1/3.2 | 8.49秒 | 1.26倍 |
| (平文) | 2,937.7MB | 100% | 3.32秒 | 1 | 3.10秒 | 1.07倍 |
| br | 292.1MB | 9.9% | 2.53秒 | 1.3倍 | 2.25秒 | 1.12倍 |
| xz | 252.9MB | 8.6% | 1.79秒 | 1.9倍 | 1.88秒 | 1/1.05 |
| zst | 347.8MB | 11.8% | 1.63秒 | 2.0倍 | 1.54秒 | 1.06倍 |
| gz | 318.3MB | 10.8% | 1.36秒 | 2.4倍 | 1.07秒 | 1.27倍 |
| lz4 | 532.6MB | 18.1% | 0.95秒 | 3.5倍 | 0.89秒 | 1.07倍 |
(参考)uvp:.uwvz にしたあと |
329.6MB | 11.2% | — | — | 0.31〜0.40秒 | — |
uvf は無料版 UwView の検索コマンドで、圧縮ファイルを外部のコマンドを呼ばず、内蔵のデコーダで展開しながら探した時間です。どの形式も rg -z とほぼ同じ(1.5 倍未満)でした。最後の行は参考で、有料版 uvp がファイルを .uwvz(uvp 用の圧縮形式+索引)にしたあと、2回目以降に探す時間です(この記事の最後で触れます)。
平文より下の5つ(br・xz・zst・gz・lz4)は、平文より速い。 最後の .uwvz も、2回目以降は速い。5つの理由は単純で、ディスクから読む量が 1/5〜1/9 に減るからです。展開に使う時間より、読まずに済む時間のほうが大きい。外付け SSD の素読みが約950MB/s なので、2.9GB を読むだけで3秒かかります。318MB なら 0.3秒です。
平文より上の2つ(bz2・lzma)は、平文より遅い。 lzma と bz2 は、展開そのものが追いつきません。bz2 の展開は 118MB/s しか出ていません。

1GB でも、順番は同じでした
979.2MB の同じデータでも測りました。表の見方は 3GB と同じです。
| 形式 | 大きさ | 元の何% | rg -z で探す | 平文比 | uvf で探す | rg 比 |
|---|---|---|---|---|---|---|
| bz2 | 83.6MB | 8.5% | 7.50秒 | 1/6.6 | 7.40秒 | 1.01倍 |
| lzma | 84.7MB | 8.7% | 3.40秒 | 1/3.0 | 2.85秒 | 1.19倍 |
| (平文) | 979.2MB | 100% | 1.14秒 | 1 | 1.08秒 | 1.06倍 |
| br | 97.4MB | 9.9% | 0.88秒 | 1.3倍 | 0.71秒 | 1.24倍 |
| xz | 84.3MB | 8.6% | 0.64秒 | 1.8倍 | 0.68秒 | 1/1.06 |
| zst | 115.9MB | 11.8% | 0.59秒 | 1.9倍 | 0.69秒 | 1/1.17 |
| gz | 106.1MB | 10.8% | 0.45秒 | 2.5倍 | 0.38秒 | 1.18倍 |
| lz4 | 177.5MB | 18.1% | 0.36秒 | 3.2倍 | 0.33秒 | 1.09倍 |
(参考)uvp:.uwvz にしたあと |
109.9MB | 11.2% | — | — | 0.14〜0.16秒 | — |
縮み方の順番(bz2 < xz < lzma < br < gz < zst < lz4)も、速さの順番も、1GB と 3GB で変わりません。サイズが3倍になると、秒数もほぼ3倍になります。素直な比例です。
圧縮にかかる時間
保管するには、まず圧縮しなければなりません。ログが毎日たまるなら、この時間も毎日かかります。

| 形式 | 設定 | 圧縮 1GB | 圧縮 3GB | 1秒あたり(3GB) | 大きさ(3GB) |
|---|---|---|---|---|---|
| bz2 | bzip2 -9 |
45.22秒 | 135.44秒 | 22MB | 250.7MB・8.5% |
| lzma | lzma -3 |
38.24秒 | 119.38秒 | 25MB | 254.1MB・8.7% |
| xz | xz -3 |
16.88秒 | 50.00秒 | 59MB | 252.9MB・8.6% |
| br | brotli -q 5 |
6.72秒 | 19.98秒 | 147MB | 292.1MB・9.9% |
| gz | gzip -6 |
6.32秒 | 19.64秒 | 150MB | 318.3MB・10.8% |
| zst | zstd -3 |
0.67秒 | 1.94秒 | 1,514MB | 347.8MB・11.8% |
| lz4 | lz4 -1 |
0.29秒 | 0.78秒 | 3,766MB | 532.6MB・18.1% |
(参考).uwvz |
uvp(平文から) |
1.26秒 | 3.59秒 | 818MB | 329.6MB・11.2% |
時間をかけても、そのぶん縮むとは限りません。 bz2 は 135秒かけて 8.5%、xz は 50秒で 8.6% と、3分の1の時間でほぼ同じ大きさです。そして zst は gz の10分の1の時間で終わります(1.94秒 対 19.64秒)。大きさはほぼ同じです(11.8% 対 10.8%)。zst と lz4 は、ディスクから読むのとほぼ同じ速さで圧縮が終わります。xz は並列で圧縮しても 50秒、bz2 と lzma は2分を超えます。
最下段の .uwvz は uvp 用の圧縮形式+索引で、平文から作る時間です(作成と1回目の検索を含む・Wide Field)。
xz・lzma・brotli は、既定より軽い設定で圧縮しています(既定は xz と lzma が -6、brotli が 11)。既定のままなら、もう少し小さくなるかわりに、圧縮はさらに遅くなります。
総合で選ぶ
圧縮は1回、大きさは保管しているあいだずっと、探すのは探すたび。3つを並べます。

| 形式 | 圧縮(1回) | 大きさ | 探す(毎回) | 判定 |
|---|---|---|---|---|
| bz2 | 135.44秒 | 8.5% | 24.93秒 | × 選ばない |
| lzma | 119.38秒 | 8.7% | 10.71秒 | × 選ばない |
| br | 19.98秒 | 9.9% | 2.53秒 | × ログには利点なし |
| lz4 | 0.78秒 | 18.1% | 0.95秒 | △ 書き込みが多いとき |
| xz | 50.00秒 | 8.6% | 1.79秒 | ○ 長期保管・容量優先 |
| gz | 19.64秒 | 10.8% | 1.36秒 | ○ どこでも読める |
| zst | 1.94秒 | 11.8% | 1.63秒 | ◎ 総合でいちばん |
(参考).uwvz |
3.59秒 | 11.2% | 0.35秒 | uvp 用の圧縮形式+索引(Wide Field) |
- 迷ったら zst。 圧縮は gz の10分の1、大きさと探す速さは gz とほぼ同じです。3つとも上位で、弱点がありません。
- 相手の環境が分からないなら gz。 どこでも展開できます。圧縮に zst の10倍かかるのが代償です。
- 長く置いておくなら xz。 一度だけ時間をかけて、いちばん小さく保管でき、それでも平文より速く探せます。ただしブロック分割が前提です。今回の xz は 245 ブロックで、外部の xz コマンドが並列で展開しています。1ブロックしかない xz(
-T1で作ったもの)は、探すのがずっと遅くなります。 - ログが大量に流れ込むなら lz4。 圧縮は一瞬で、探すのも最速です。ただし 18.1% と大きいので、長期の保管には向きません。
- br はログには向きません。 圧縮の時間は gz と同じ、大きさは少し小さいだけで、探すのは gz の2倍かかります。Web の配信のために作られた形式です。
- bz2 と lzma は選ばない。 圧縮も探すのも遅く、大きさは xz と変わりません。すでに bz2 で残しているログがあるなら、zst か xz に詰め替える価値があります。
測り方
- ファイル: OpenStreetMap 日本の XML を切り出した 979.2MB と 2,937.7MB。3GB のほうは同じ内容を3回つないだものです。繰り返しの間隔が各形式の窓より長いため、圧縮率は 1GB とほぼ同じ値になります
- 語:
東京(1GB で 1,145件・3GB で 3,435件) - 圧縮の設定は
gzip -6・bzip2 -9・xz -3・lzma -3・zstd -3・lz4 -1・brotli -q 5(gz・bz2・zst・lz4 は既定、xz・lzma・brotli は既定より軽い)。xz 5.6 以降は既定で並列に圧縮し、複数のブロックになる(1GB で 82・3GB で 245 ブロック) - 圧縮の時間は、キャッシュを捨てずに1回だけ測った参考値
- 各測定は、sync → キャッシュ破棄 → 10秒待機 → 1回目(cold)→ 続けて2回目(hot)
- ripgrep 15.2.0 の
-z。rg -zは外部のコマンド(gzip・bzip2・xz など)を呼んで展開します - Mac(Apple M4・10コア)/外付け USB SSD。秒数は環境によって変わります
- すべての測定で、平文を探した結果と件数が一致することを確認しています(各20項目・不一致0)
私たちの道具では
ここからは自分の製品の話です。UwView の検索コマンドは、外部のコマンドを呼ばずに内蔵のデコーダで展開します。その差が出るかを、同じ条件で測りました。
無料版の uvf は、どの形式も rg -z と同等でした。 3GB の2回計で gz 1.29倍・lzma 1.26倍・br 1.15倍・lz4 1.09倍・zst 1.07倍・xz 1/1.07 と、すべて 1.5 倍未満です。外部プロセスを介さないぶん有利なはずですが、差と呼べるほどではなく、いちばん不利な xz では外部の xz の並列展開にわずかに届いていません。
有料版の uvp は、圧縮ファイルをいったん .uwvz(uvp 用の圧縮形式+索引)に変換して、以後はそちらを探します。 上の表の最後の行がそれで、探す時間は形式に関係なく 0.31〜0.40秒でした。1回目(.uwvz への変換込み)も、どの形式でも rg -z の 1.5 倍以内に収まりました(gz 1.82秒 対 1.36秒、bz2 24.41秒 対 24.93秒 など)。bz2 で保管していても、xz で保管していても、変換したあとは同じです。元の形式の違いは、変換のときに1回だけ効きます(bz2 からの変換は 24.41秒、lz4 からなら 1.34秒)。
これは「速い検索」というより、保管の形を変える話です。圧縮したまま置いて毎回展開するか、索引に変えて毎回の展開をやめるか。前者は容量が小さく、後者は探すのが速い。.uwvz は 11.2% なので、容量は zst と同じくらいのまま、探す時間だけ 0.3秒台に落とせる、という位置づけになります。元のファイルは消せます(-extract で戻せます)。
変換の費用は、探す回数で割って考えます。bz2 なら1回探すごとに 24.5秒の差がつくので、1回目から元が取れます。gz なら 0.96秒の差なので2回目です。
.uwvz の大きさは、元の形式に関係なく同じでした(3GB から 329.6MB・11.2%)。どの形式で保管していても、索引にした時点で zst と同じくらいの大きさに落ち着く、ということです。
この計測は、公開前の開発版 Wide Field(1.7.1.6) のものです。Wide Field は 2026年9月29日に v1.7.3.6 として公開しました(リリースノート)。7形式をそのまま探すのは、無料版の
uvfでできます。.uwvzに変えて探すのは、有料版 UwView Pro のuvpです。
無料の UwView は GitHub Releases から。Mac はbrew install --cask amru195704/uwview/uwview、Windows は Scoop(scoop bucket add uwview https://github.com/amru195704/scoop-uwview→scoop install uwview)でも入ります。

