.NET の問題 : 偽共有 http://msdn.microsoft.com/ja-jp/magazine/cc872851.aspx メニイコア前提の話になるけど、複数のスレッドを立てて並列処理する際、コード上ではそれぞれのスレッドに別々のデータ(変数)を与えていても、キャッシュラインのサイズ以下の小さなデータだった場合、各スレッドが読み出すデータが同一キャッシュライン上に乗ったりなんかして、結果それらデータが各コアのL2,L1にキャッシュされた際、コヒーレンシを維持するための通信コストが頻繁に発生して、劇的に遅くなったりすることがあるよ。って話。いかにしてこの問題が起きていないか発見するかっていう方法まで載ってるけど、まぁどうでもいいや。 ちょっと気になって調べてみたけど、現行のx86プロセッサってキャッシュラインサイズ64byteなんだよなぁ。。。自分なら、これ以下のサイズの小さ