uvpY42u

技術解説

正規表現だけ遅い自作CLIを ripgrep と同じ性質にした — 改善記④:必須リテラルを「保守的に」取り出して 50GB の -E を 13.68秒→7.75秒

正規表現だけ遅い。 同じ 50GB のファイルを、同じ道具で探しています。違うのは -E を付けたかどうかだけ。それで秒数がほぼ倍になりました。比較相手の ripgrep には、この段差がありません。 段差を消す鍵は、正…
技術解説

自作CLIが同じコマンドで3回とも違う件数を返した(ripgrep は毎回同じ) — 改善記⑤:打ち切りの既定を無制限にし、grep と同じ 0/1/2 で「不完全」を伝える

件数が毎回違う。 同じファイル、同じコマンド、同じ機械。3 回続けて実行して、356,940 件・356,356 件・357,803 件。どれも「エラー」ではなく、正常に終わって数字を返してきます。 これは速度の話ではあ…
技術解説

CLIが探した結果を画面に渡して2回読みを1回にした — 改善記⑥:一時ファイル1つと「索引の目印」で、50GB の通しが klogg の 108.14秒に対して 50.76秒

探した結果を、捨てていた。 コマンドで 50GB を探して、当たった行を画面で開く。よくやる流れです。ところがこのとき、コマンドが見つけたヒットの位置は画面に渡っていませんでした。渡っていたのは検索語だけ。 つまり画面は…
技術解説

ログは圧縮したほうが、速く探せます — 1GBと3GBで7形式を測りました

【追記 2026-10-16】いまの速さ — v1.9.0「Full Spectrum」で測り直しました 本文の uvf・uvp の数字は、開発版 Wide Field(1.7.1.6・2026年9月)のものです。同じ…
技術解説

自作CLIの -i が ripgrep に4.3倍負けていた — 改善記③:文字に戻さずバイトのまま畳んで 2.72秒→0.66秒(例外は U+212A だけ)

-i を付けると4倍遅い。 同じファイル、同じ語、違うのは「大文字小文字を無視するかどうか」だけ。それだけで秒数が4倍になります。探し方の問題だと思って探索のコードを読んでいましたが、犯人はそこにいませんでした。 速い道…
技術解説

自作CLIを ripgrep 並みの速さにした — 改善記②:2回半読みを1回に畳んで 203秒→50.82秒

203 秒が 50.82 秒に。 コードを速く書き直したわけではありません。並列化もしていません。減らしたのは、同じファイルを読む回数だけです。では「数える・探す・書き出す」という 3 つの仕事を 1 回の読みに畳むと、…
技術解説

自作CLIが50GBの検索で ripgrep に3.7倍負けた — 改善記①:205秒の内訳を測る

50GB の検索に、205 秒。 「速さの道具ではありません。ripgrep があるならそちらを」——v1.6.0 のリリース文に、自分でそう書きました。ripgrep の約 4 倍。けれど、その 205 秒が何でできて…
技術解説

uvp の1問目が 6.7秒縮みました — 「作ってから探し直す」をやめた話(UwView Pro v1.6.6.1)

「1問目は ripgrep より2割ほど遅い」——そう書くつもりでした。 UwView Pro のコマンド uvp は、最初の検索で .uwvz(圧縮+索引)を作ります。作るぶん遅くなるのは当たり前で、そのかわり2問目か…
技術解説

無料の uvf だけで ripgrep とも klogg とも渡り合えます。uvp が効くのは2問目から — 同じ 50GB を3つの土俵で測った

3か月かけて、51.25GB の1本のファイルを同じ機械で測り続けました。出てきた答えは、自分でも意外なほど単純でした。 無料版に付いてくる uvf だけで、最速の grep とも、業界標準のログビューアとも渡り合えます…
技術解説

klogg に開くのは負けました。通すと uvf が勝ちます — 50GB で比べ直した

51GB のファイルを開くだけなら、klogg のほうが速いです。52.55秒 対 100.6秒。うちの負けです。 【2026-09-19 追記】この負けは v1.6.6 で返しました。 同じ条件で測り直して 50.44…