for (int i = 0; i < 5000; i++)
for (int j = 0; j < 5000; j++)
{
for (int ii = 0; ii < 20; ii++)
for (int jj = 0; jj < 20; jj++)
{
int num = matBigger[i+ii][j+jj];
// Extract range from this.
int low = num & 0xff;
int high = num >> 8;
if (low < matSmaller[ii][jj] && matSmaller[ii][jj] > high)
// match found
}
}
マシンは x86_64、32kb L1 キャッシュ、256Kb L2 キャッシュです。
このコードを最適化するにはどうすればよいかについての指針はありますか?
EDIT元の問題の背景: MXN マトリックスで amxn サブマトリックスを見つける最速の方法