後続の実行grep
同じクエリ(および同じファイルに対する別のクエリ)に対する最初の実行よりもはるかに高速です(大容量ファイルを検索すると効果が容易に目に見えます)。
これは、grepが検索のために構造キャッシュを使用することを意味しますが、インターネット上で参照を見つけることができません。
grep
後続の検索で結果をより早く返すメカニズムは何ですか?
答え1
grep自体ではありませんが、ファイルシステム自体が最近読み込んだデータをキャッシュすることが多く、grepがディスクではなくメモリから効果的に検索するため、後続の実行が速くなります。
答え2
Linuxおよび* NIXシステムは、ファイルシステム(VFSを介して抽象化されています)とユーザーレベルのプロセスの間にあるさまざまなキャッシュを利用します。したがって、grepでもなく、キャッシュを実行するファイルシステムでもありません。オペレーティングシステムです。
grepのパフォーマンスを担当するキャッシュはVFSバッファキャッシュです。他のキャッシュはinodeとディレクトリに使用されますが、これらのキャッシュはここでは機能しません。
詳細については、Linuxドキュメントプロジェクト:9.2仮想ファイルシステムを参照してください。http://tldp.org/LDP/tlk/fs/filesystem.html
答え3
もしあなたならはいキャッシュされたgrepのバージョンを見つけるには、次を参照してください。https://stackoverflow.com/questions/7734596/grep-but-indexable