マルチコア+マルチスレッドで遅くなる?
まだ上巻を読んでるところのAdvanced Windows 第5版ネタ。
本によるとマルチコアのCPUで同じメモリにマルチスレッドでアクセスすると遅くなることがあるよって書いてある。
volatile LONG gv_value = 0; //読み込み関数 void WINAPI VolatileReadCallback() { LONG lValue = gv_value; } //書き込み関数 void WINAPI VolatileWriteCallback() { gv_value = 0; }
これらの関数をマルチコアCPU+マルチスレッドで呼び出すと読み込みは速度低下が起きないが、書き込み関数ではぐぐっと遅くなるらしい。
で、やってみたんだけど・・・うちのCore2Duo 2.0GHzでは読み込みも書き込みも同じ処理時間。
スレッドを増やしても処理が増えた分がそのまま増えるだけ。
書いてある通りの結果にはならなかったんだけどこの本はどのCPUで実験したんだろう?
同じ結果になった人いるかな?