設計

技術解説

-i 付きの正規表現が ripgrep に2.7〜3.1倍負ける — Wide Field⑨:.NET の正規表現がどこまで同じか、書き換え先で結果が変わる話

【追記 2026-10-16】いまの速さ — -E -i の2回目は、1/2.7〜1/3.1 の負けから ripgrep より速いに変わりました 本文の秒数は v1.7.3.6(2026年9月29日)のものです。同じ M…
技術解説

ripgrep の –json に項目数で負ける JSON Lines — Wide Field⑪:キーは3つだけ、スレッド数は –tune で測って決める(1本6.33→8本16.41 GB/s)

jq に渡せません。 検索結果を cut -d: でファイル名と行番号に割ろうとして、C:/logs/app.log のコロンで割れました。Windows のパスです。ならば最初から JSON で出せばいい——と思ったと…
技術解説

rg に gzip をつながずに gz で書き出す — Wide Field⑩:50GB で117.20秒→11.89秒、ただし3GBでは ripgrep と同等

形が、戻りませんでした。 bz2 で保管していたログを探して、結果をまた bz2 で置きたい。入口は7つの圧縮形式を読めるのに、出口はテキストだけでした。 読めるのに書けない、というのは何が足りないのでしょうか。 計測は…
技術解説

ripgrep の -g にある除外指定が、まだありません — Wide Field⑧:ファイル指定を引用符ひとつに決め、直した5か所で36項目が一致

引用符を忘れると、怒られます。 uvf .log ERROR と打つと、エラーになって「引用符で囲んでください」と言われる。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 を探して、当たった行を画面で開く。よくやる流れです。ところがこのとき、コマンドが見つけたヒットの位置は画面に渡っていませんでした。渡っていたのは検索語だけ。 つまり画面は…
技術解説

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

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