プログラムでキャッシュラインのサイズを取得しますか? 質問する

プログラムでキャッシュラインのサイズを取得しますか? 質問する

すべてのプラットフォームを歓迎します。回答にはプラットフォームを指定してください。

同様の質問:C++ で CPU キャッシュ ページ サイズをプログラム的に取得するにはどうすればよいですか?

ベストアンサー1

Linux (比較的新しいカーネルを使用) では、/sys からこの情報を取得できます。

/sys/devices/system/cpu/cpu0/cache/

このディレクトリには、キャッシュの各レベルに対応するサブディレクトリがあります。各ディレクトリには次のファイルが含まれています。

coherency_line_size
level
number_of_sets
physical_line_partition
shared_cpu_list
shared_cpu_map
size
type
ways_of_associativity

これにより、キャッシュライン サイズ ( ) やこのキャッシュを共有する CPU など、キャッシュに関する必要な情報以上の情報が得られますcoherency_line_size。これは、共有データを使用してマルチスレッド プログラミングを行う場合に非常に便利です (データを共有するスレッドがキャッシュも共有している場合は、より良い結果が得られます)。

おすすめ記事