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 cahce,256 Kb二級緩存。優化此代碼塊
任何關於如何可能優化此代碼的指針?
編輯一些背景原來的問題:Fastest way to Find a m x n submatrix in M X N matrix
您可以嘗試展開內部循環。 –
我不認爲有可能優化此代碼,除非重新考慮整個算法以減少循環次數。這段代碼應該做什麼? –
選擇不同的數據結構! –