キャッシュに存在するすべてのファイルを一覧表示します


8

この質問は、キャッシュの一部を見つける方法に関する質問への回答です。ただし、fincore実行可能ファイルでは、ファイル名を渡して、それがキャッシュの一部であるかどうかを確認する必要があります。

ファイル名を渡さずにキャッシュされたメモリの一部であるすべてのエントリを見つけるツールまたは方法はありますか?

PS:組み込みシステムで実行しており、forループを実行してすべてのファイルをfincore自分自身に渡すことは、より多くの時間とメモリ消費プロセスです。したがって、私は他の方法を探しています。

回答:


6

カーネルがキャッシュしたブロックに関連付けられたファイル名を公開する場所を知りません。この答えによると

https://stackoverflow.com/a/4941371

カスタムカーネルモジュールを使用しても実行できる最善の方法は、iノードとデバイスのリストを取得することです。そこから、ファイルシステムを調べてそれらのファイルを探す必要があるでしょう。

次に、「しかし、fincoreリストしたファイルについてどうやって知るのですか?」または、そうでないかもしれませんが、メソッドはかなり賢いので、ここにあります。このfincoreツールは次のように機能します。

mincoreシステムコールは、メモリの特定のページが(アクセスしたとき、すなわち、ページフォルトが発生しません)コアメモリ内にあるかどうかを示します。以来mmapレイジーロードマップファイル、および我々はまだマップ領域のいずれかを読んでいない、任意のページではないでしょうページフォルトを起こすには、そうでない場合は、当社のキャッシュの一部でなければなりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.