0

マルチスレッド プログラムでスレッド ローカル ストレージを使用すると、キャッシュ ミスが少なくなりますか?

編集:各スレッドには独自のメモリプールが与えられているため、最後にアクセスしたメモリがまだCPUキャッシュにある可能性が高くなりますか?

4

2 に答える 2

3

何より少ないキャッシュミス?

TLS は、異なるスレッドが異なるデータで動作することを保証する多くの方法の 1 つにすぎません (明らかな方法は、各スレッドのデータを独自のスタックに置くことです)。

スレッドが同じデータに書き込まない場合は、キャッシュの動作が向上しますが (他のすべてのコアの対応するキャッシュ ラインが無効になるため)、スレッドが異なるデータで動作することを保証するために使用する方法は、この点。

(ただし、TLS に関連するオーバーヘッドは他にもあります。これは魔法ではありませんし、特効薬でもありません。ほとんどの場合、これは間違った解決策です)

于 2012-07-05T19:14:08.193 に答える
0

いいえ、キャッシュは実際にはスレッド プール サイズに関して編成されていないため、考えている選択とは無関係に機能します。

于 2012-07-05T19:09:53.827 に答える