先日、北陸twitterオフで、2次元配列をx,yの順でアクセスするのと、y,xの順でアクセスするのでは、実行速度が違うんだよ、という話をしていたのだが、正直このネタは4、5年前にMIPSを使っていたときの事なので、今でも有効なのか?と思いベンチマークプログラムを作成して検証してみた。 内容 Integer型二次元配列の内容を処理する時に、アドレス順に行う(キャッシュにヒットしやすい)場合と、そうでない(キャッシュにヒットしにくい)場合を比較してみた。 環境 MacBookPro (Core2Duo 2.4G / Memory 4GB) MacOS X 10.5.6 gcc 4.0.1(-O2で最適化) 結果 X Y キャッシュヒット キャッシュミス diff 1024 1024 0.002351 sec 0.062166 sec x 26.44 1024 2048 0.004840 se