CPUキャッシュの「つまらない」詳細が、プログラム性能の理解を大きく変える

Gallery of Processor Cache Effects

Igor Ostrovskyが、C#のコード例でプロセッサキャッシュの挙動を解説。配列の全要素を3倍するループと16要素ごとに3倍するループがほぼ同じ時間(80msと78ms)で走る理由を、64バイトのキャッシュラインやL1/L2のサイズ、命令レベル並列性、キャッシュの連想度から明らかにする。一見無駄なアクセスでも、ハードウェアの実際の動作を理解すれば性能の謎が解ける。

最初のループは配列のすべての値を3倍し、2番目のループは16個ごとにしか3倍しない。2番目のループの仕事量は最初のループの約6%に過ぎないのに、現代のマシンでは、この2つのforループはほぼ同じ時間しかかからない。
  1. cowlevel

    ウェブサイトがSlashdot効果でアクセス集中して、帯域制限に引っかかってる

  2. sapper123

    この記事は2010年のものだ。それはタイトルに入れるべきだろう。

この日のほかの記事

2026-10-07