技術解説

技術解説

同じテスト一式を mac・Windows・Linux で流したら、Windows で負けが見つかりました — Wide Field⑬:総合は 2.49/3.42/1.88倍・不一致 0 件、ただし Windows の xz・zst・lz4 は ripgrep の 1/1.5〜1/2.1

この連載の数字は、ほとんど1台の Mac で測ったものです。 UwView は Windows・macOS・Linux 向けに配っています。Mac で「ripgrep と同等以上」と書いたことは、ほかの2つでも本当なので…
技術解説

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 では pbf の中を探せない — Wide Field⑥:osmium で XML にして渡すと148秒、uvp に直接渡すと29.3秒(2回目からは6.8秒)

2分半、待ちました。 osmium cat で OpenStreetMap の pbf を XML に展開し、rg に流す。これで1回の検索に148秒です。pbf は地図データの圧縮形式なので、rg にそのまま渡しても中…
技術解説

ripgrep は zip の中を探さない — Wide Field⑤:unzip で展開してから探すと18.4秒、zip をそのまま渡すと3.3秒(2回目は0.6秒)

0件、と返ってきます。 rg に zip を渡しても、中は見てくれません。終了コードは1。ログを zip で固めて置いてあると、まず展開しないと探せないわけです。 その展開は、いくらの買い物でしょうか。 対象は uvzi…
技術解説

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

引用符を忘れると、怒られます。 uvf .log ERROR と打つと、エラーになって「引用符で囲んでください」と言われる。ripgrep なら、そのまま探してくれるところです。わざわざ使いにくくしているわけです。 なぜ…
技術解説

xz だけ ripgrep -z に6.19倍負けていた — Wide Field②:外部コマンドを呼ばずに7形式、束ねたら止まった並列を直すまで

【追記 2026-10-04】Windows では、圧縮の一部の形式で ripgrep の方が速い結果でした この記事の「1.5倍以上の負けは 0 項目」は Mac での結果で、今も正しいです。同じテスト一式を Wind…
技術解説

束ねる1回目は ripgrep に1.58倍負ける — Wide Field④:2回目からは9.77秒、ファイルが1本消えても作り直さない

1本、消えました。 まとめて探すために作った索引の、元のファイルです。app.log.9.gz が保存期間を過ぎて消えた——そのとき、索引はどうあるべきでしょうか。 以前のこちらは、作り直していました。それが正しくないと…
技術解説

ripgrep と同じ除外規則にそろえた — Wide Field⑦:3つのOSで43項目が一致、ただし .rgignore は読みません

件数が合いません。 同じフォルダーを rg --files と自作の CLI に渡したのに、対象になるファイルの一覧が違う。犯人は .gitignore でした——正確には、こちらがそれを読んでいなかったことです。 「r…
技術解説

平文と gz の12本を1コマンドで — Wide Field①:ripgrep に1.62倍負けてから2.42倍、ただし平文だけでは取り返せない

【追記 2026-10-04】v1.7.3.6.8 で、2回目(hot)の読み方が速くなりました この記事の「平文5本の2回目は uvf が遅い側(1/1.38)」は v1.7.3.6 の値です。v1.7.3.6.8 で…