UwView の画面が uvf … -open に追いつきました — 50GB の通しが 189.5秒から 53.7秒になった話

技術解説

【2026-09-21 訂正】 公開時、比較に使った uvf … -open53.69秒は v1.6.5 の値でした。画面と同じ v1.6.6 の値(50.76秒)に差し替えています。これに伴い「0.01秒しか違わない」という記述を、「約3秒差」に改めました。画面もコマンドも、開くのと探すのを同時に走らせるようになったので、残る約3秒は画面を描く分と、ファイルを開く操作・検索語を打つ操作の分です。

昨日、自分の弱点を記事に書きました。 klogg と正直に比べ直したときの、いちばん痛いところです。

無料版 GUI が「開く」ときの読み出しは 486 MB/s。klogg は 930 MB/s。ほぼ2倍の差があります。
(中略)klogg が媒体の速度を出しているという事実は、こちらにとって「目標値の実測」でもあります。
次の版で詰めます。
klogg に開くのは負けました。通すと uvf が勝ちます(2026-09-18)

その次の版で、返しました。

結果

51.25GB の1本のファイル。ファイルを開く操作から、行番号つきの結果一覧が画面に出るまでを、ストップウォッチ1本で測りました。

50GB・「探して、画面で読む」まで 時間 v1.6.6 との比
UwView 無料版 GUI v1.6.5 189.50秒 3.53倍
klogg 24.11.0 108.14秒 2.01倍
uvf … -open(コマンド・v1.6.6 50.76秒 画面より約3秒速い
UwView 無料版 GUI v1.6.6 53.7秒

53.7秒。51.25GB ÷ 53.7秒 = 910 MB/s で、このディスクの素読みそのものです。

そしてコマンドの uvf … -open(v1.6.6)は 50.76秒。画面との差は約3秒です。どちらもファイルを1回しか読まないので、残るのは画面を描く分と、ファイルを開く操作・検索語を打つ操作の分だけです。

ひとつ、書いておきたいことがあります。3.53倍と 2.01倍という数字は、昨日の記事で v1.6.5 の uvf … -open が出した倍率とまったく同じです。
つまり——画面が、1つ前の版のコマンドに追いつきました。 そしてコマンドのほうも、v1.6.6 で 53.69秒 → 50.76秒とさらに縮んでいます。

何をしたのか

やったことは1つだけです。索引の完成を待たずに、検索を始められるようにしました。

v1.6.5 まで、画面の手順はこうでした。

  1. ファイルを開く。裏で索引を作る(50GB で 100.6秒)
  2. 索引ができてから、検索する(88.9秒)
  3. 合計 189.50秒

問題は「2回読んでいる」ことでした。 1で全部読み、2でまた全部読む。klogg も同じ作りで、だから klogg も 108.14秒かかります。
一方 uvf … -open は、1回読むあいだに探して、索引を作って、画面へ渡す——だから v1.6.5 でも 53.69秒で済んでいました(v1.6.6 では 50.76秒)。

v1.6.6 では、画面を同じ形にしました。開いている最中に検索を始められるので、ファイルを読むのは1回きりです。
uvf … -open とほぼ同じ時間になったのは、同じことをするようになったからです。

ちなみに、昨日の記事ではこう予想していました。

GUI の索引構築を同じ読み方に寄せられれば、50GB を開くのが 100.6秒から 52秒前後になるはずです。

外れました。 52秒前後になったのは「開く」だけではなく、「開いて、探して、画面に出す」まででした。

3GB と 10GB の秒数は出しません

ここは正直に書きます。3GB と 10GB は、手で測れる精度を超えてしまいました。

3GB に至っては、そもそも測れません。検索語を打ち込んでいる間に、開き終わってしまうからです。
「待ってから探す」という手順が消えたので、「待ち時間」を測る操作自体が成立しない。

10GB も似たような状況で、秒単位の差を人間の手とストップウォッチで議論できる領域にありません。
測れないものに数字を付けたら、それは実測ではなく作文です。 なので書きません。

言えるのはここまでです。開く処理と検索処理が同時に走る。3GB では、探し始める前に開き終わっている。

正直な線引き

【2026-09-19 追記】「開くだけ」も測りました。3サイズとも klogg より速くなっていました。

開くだけ(sudo purge 後) 3GB 10GB 50GB
klogg 24.11.0 3.65秒 10.98秒 52.55秒
UwView 無料版 GUI v1.6.5 5.27秒 19.62秒 100.6秒
UwView 無料版 GUI v1.6.6 2.99秒 10.13秒 50.44秒
対 klogg 1.22倍 1.08倍 1.04倍

読み出しに直すと 967/966/969 MB/s3サイズとも同じ値で、これは媒体の速度そのものです
(3GB はメモリに載る大きさですが 967 止まりなので、キャッシュが効いた値ではありません)。486 MB/s の 1.99倍——ほぼ2倍になりました。

もうひとつ。50GB の「開くだけ」50.44秒に対して、この記事の「通し」は 53.7秒。差は 3.3秒だけです。
検索が開くのと同時に走っているので、ファイルを読み終わったあとに残るのは検索の尻尾だけ、ということです。

この記事を書いた時点では「測っていないので書きません」としていました。測ったので、書きます。

klogg は引き続き優れたツールです。 無料でオープンソースで、開くのが速い。この記事で示したのは
「探して、読むまでを通すと、うちのほうが短い」という1点だけです。用途が違えば答えも違います。

Pro(uvp)との関係も変わりません。 今回速くなったのは無料版の1問目です。
同じファイルに2問目・3問目を投げるなら、.uwvz を持っている Pro が圧倒的で、50GB の検索が 6.34秒、
2回目に開くのが 0.01〜0.07秒。「1回だけ調べる」なら無料版で足ります。「何度も戻る」なら Pro です。

測り方

  • ファイル: OpenStreetMap 日本の XML、51,254,526,392 バイトの1本
  • 語: 東京(94,979件)
  • sudo purge してからのコールド。ストップウォッチ1本で、ファイルを開く操作から、行番号つきの結果一覧が画面に出るまで
  • Mac M4/メモリ32GB/外付け USB SSD(素読み 約950MB/s)、UwView 無料版 GUI v1.6.6
  • 比較対象の 189.50秒・108.14秒は、昨日の記事と同じ機械・同じファイル・同じ条件の実測。uvf … -open50.76秒は v1.6.6 の実測(sudo purge 後のコールド)

uvf も無料版 GUI も無料です。GitHub Releases から単体で動きます。
索引を残して同じファイルに何度も戻りたい場合は UwView Pro です。

タイトルとURLをコピーしました