UwView Pro ベンチマーク完全版 — 3GB/10GB/48GB × HDD/SSD/内蔵SSD の9マスで klogg と本気比較

技術解説

UwView Pro(以下 UVP・発売中)(大容量テキストビューア UwView の上位版)について、前回の記事では 48GB・8.9億行での klogg 比較をお見せしました。今回はその完全版です。

「巨大ファイルだけ速くても意味がないのでは? 普段使いのサイズではどうなの?」——もっともな疑問です。そこでファイルサイズ3種類 × ストレージ3種類 = 9マスの総当たりで計測しました。

  • サイズ: 2.95GB・1億行 / 9.4GB・1億行 / 47.73GB・8.9億行(いずれもOSM実データ由来)

※ファイル容量の表記について:本記事の「48GB」は 47.73GiB(バイト÷1024³)を丸めた値です。macOS の容量表示(SI・÷1000³)では 51.25GB と表示されます。いずれも同一ファイル(51,254,526,392 バイト)で、説明動画の「51GB」表記もこれに合わせています。

  • ストレージ: USB HDD(実測 0.10GB/s)/ USB SSD(0.41GB/s)/ 内蔵SSD(3.29GB/s)— 生帯域で 33倍 の開きがあります
  • 環境: MacBook Air / Apple M4(10コア)/ RAM 32GB / macOS Tahoe 26.3.1、klogg 24.11.0
  • 検索は実運用を模して10ワード(北海道・仙台・東京・名古屋・大阪・神戸・広島・山口・福岡・大分)を連続検索した平均(1回目のコールド読み込み込み。48GBのみ単発計測)
  • 検索ヒット件数は全計測で klogg と厳密一致を確認(例: 10GBの “Tokyo” = 1,211件)
  • ※ klogg の時間は GUI 画面の目視計測のため概算です

1. ストレージ速度で何が変わるか — 全体の傾向

9マスを俯瞰すると、境界線は「ファイルがRAM(32GB)に収まるかどうか」と「ディスクがどれだけ遅いか」の2本でした。

RAMに収まるサイズ(3GB・10GB)では、検索は両ツールとも数秒です。klogg もインデックス作成時に読んだファイルがOSのキャッシュに残るため、検索自体は速い。このゾーンでの差は検索速度ではなく「開くたびに毎回インデックスを作り直すか(klogg)、索引を保存して行番号付きで瞬時に開き直せるか(UwView Pro)」に現れます(どちらも開いた瞬間から閲覧は可能です)。

RAMを超える48GBでは検索そのものが別世界になります。klogg は検索のたびにディスクを一周(HDDで約10分、内蔵SSDでも15秒超)。UwView Pro は読む量が約1/9の圧縮キャッシュ(.uwvz)だけなので、同じ検索が数秒〜75秒で返ります。

そしてディスクが遅いほど、すべての差が絶対時間として拡大します。内蔵SSDなら「まあどっちも速い」で済む場面が、USB HDD では「10分待ち vs 75秒」の体験差になります。外付けHDDやNASに巨大ログを置いている人ほど効く、ということです。

開発面でも収穫がありました。HDD では並列読み込みがヘッドシークを暴れさせて逆効果になることが分かり、UwView Pro には「オープン時にストレージ速度を試し読みして、遅ければシーケンシャル読みに自動で切り替える」仕組み(シャード数の自動調整)を入れました。この記事の数値はその自動調整込みの実測です。

2. UVP vs klogg — 全項目比較表(オープン→検索の流れ)

実際の使い方の順番——まずファイルを開き、それから検索する——で並べます。

オープンは「同じファイルを2回開いた合計」で比較します。klogg はインデックスを開くたびに毎回作り直すので単純に2倍、UVP は2回目が数十ミリ秒(≈0)なので合計は初回とほぼ同じ——「次回はゼロ」という UVP の特徴を、1つの数字で表すための方法です。

各サイズの小計行に倍率(klogg÷UVP、3ストレージ合計の単純計算)を入れています。

サイズ・ストレージ klogg オープン(2回合計) UVP オープン(2回合計) klogg 検索 UVP 検索
3GB・内蔵SSD 約4s 1.4s 約2s 0.40s
3GB・USB SSD 約16s 8.3s 約2s 0.43s
3GB・USB HDD 約94s 51.3s 約2s 0.72s
3GB 小計 → 倍率 約114s 61.0s → 約1.9倍 約6s 1.55s → 約3.9倍
10GB・内蔵SSD 約7s 4.9s 約2s 1.20s
10GB・USB SSD 約48s 27.8s 約3s 1.14s
10GB・USB HDD 約220s 155.8s 約3s 2.41s
10GB 小計 → 倍率 約275s 188.5s → 約1.5倍 約8s 4.75s → 約1.7倍
48GB・内蔵SSD 約30s 23.3s 約17.5s 5.1s
48GB・USB SSD 約220s 138.5s 約128s 14.3s
48GB・USB HDD 約1090s 637s 約585s 74.8s
48GB 小計 → 倍率 約1340s 798.8s → 約1.7倍 約730s 94.2s → 約7.7倍

オープンを「2回の合計」にしてもなお UVP が1.5〜1.9倍速く、3回目・4回目と開くたびに klogg 側だけが積み上がるので、この倍率は開く回数が増えるほど大きくなります(N回開けば klogg は N倍、UVP はほぼ初回のまま)。

検索の倍率は「RAMに収まるサイズで約1.7〜3.9倍、RAMを超える48GBで約7.7倍」。検索も回数を重ねるものなので、体感差はこの倍率×回数で効いてきます。

正規表現検索も同傾向です(例: 10GBの10ワード平均で UVP 1.8〜1.9秒)。アーカイブ運用(元ファイルを削除して .uwvz だけ保管)では、ディスク占有が 1/7〜1/13 になります(3GB→0.23GB、10GB→1.29GB、48GB→5.32GB)。

3. 検索速度のグラフ — 9マスを1枚で

サイズもストレージも違う9マスを1枚に収めるため、横軸は対数です。棒が短いほど速い

全文検索の速さ — klogg vs UwView Pro(3サイズ×3ストレージ)

上(小さいファイル)から下(大きいファイル)へ行くほど、そして各サイズ内でもディスクが遅くなるほど、青(UVP)と橙(klogg)の差が開いていくのが見て取れます。一番下の「48GB・USB HDD」が冒頭の「10分 vs 75秒」です。

4. オープン時間のグラフ — 「2回開いた合計」で比較

もう1つの本質的な差がこちら。表と同じく「同じファイルを2回開いた合計」で比較します。klogg のインデックス作成は開くたびに毎回必要なので単純に2倍(しかも完了までファイルの先頭しか見られません)。UwView Pro は初回に索引+圧縮キャッシュ(.uwvz)を作りますが、2回目は数十ミリ秒=ほぼゼロなので、合計は初回とほとんど変わりません。

オープン時間(2回開いた合計)— kloggは毎回×2、UVPは2回目がほぼゼロ

初回だけ見れば UVP のほうが1〜3割長い(圧縮キャッシュ生成のぶん)のに、2回開いた時点ですでに全マスで逆転しています。そしてこの差は3回目・4回目とファイルを開くたびに一方的に開いていきます(klogg は N回で N倍、UVP はほぼ初回のまま)。「昨日のログをもう一回見たい」が日常の人にとって、USB HDD 上の10GBファイルで「毎回110秒 vs 一瞬」は決定的です。

5. まとめ

9マスの総当たりから見えた構図はシンプルでした。

  1. 普段使いのサイズ(3〜10GB)でも検索は UVP が速い(約1.7〜3.9倍)。ただし klogg も数秒以内で返ってくるので、このゾーンなら実用上の問題はない
  2. RAMを超える巨大ファイルでは UVP が格段に速い(検索で約7.7倍)。klogg は1回の検索に数分待ちが常態化するため、実用的には使えそうにない
  3. ストレージが遅いほどこの傾向は顕著になる。巨大ファイルを遅いストレージ(外付けHDD・NAS)に置いて klogg で扱うのは、検索10分・開き直し9分の世界であり、正直苦痛だと思われる
  4. だからこそ、巨大ファイルは UVP で圧縮アーカイブ化して運用するのがベストの選択になる。アーカイブサイズは元の 1/7〜1/13。元ファイルを削除して .uwvz だけで閲覧・検索でき(チェックサム保護付き)、遅いストレージに置いても数秒〜75秒で検索が返る

種明かしをすれば、UwView Pro がやっているのは「どうせ初回に全部読むなら、そのついでに圧縮キャッシュと索引を作ってしまい、二度と生ファイルを全部読まない」という一点です。ディスクI/Oという物理法則には逆らわず、読むバイト数そのものを減らす。30年前の設計を現代のハードウェア(速いCPU・大きいRAM・zstd)で解き直した結果がこの9マスでした。

そして、ストレージを専有している巨大ログを圧縮して保管し、さらに高速に検索したいなら UwView Pro をどうぞ。永続索引・圧縮キャッシュ検索・約1/9保管で、開き直しも検索も一段速くなります(全OS対応・買い切り $129/月額 $9)。 公開版 UwView は GitHub で入手できます


計測方法の詳細: 各コールド計測の前に別ボリュームの48GBファイルを全読みしてページキャッシュを排除。klogg は GUI の進捗表示を目視計測(概算)。UwView Pro はベンチハーネスで計測。検索ヒット件数は全パターン・全環境で klogg と厳密一致を確認済み。


📣 Zennにも投稿しましたZenn版:3GB/10GB/48GBのログを klogg と本気で比較した

開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。

コメント

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