我有:
final int ROWS = 100000;
final int COLS = 2000;
long[][] m = new long[COLS][ROWS];
接着:
public void xor(int row1, int row2) {
for (int col=0; col<COLS; col++) {
m[col][row1] ^= m[col][row2];
}
}
上面的函数是简化的,它在运行中花费了大部分时间。我想知道是否应该花时间重构我的整个程序以读取“m = new long[ROWS][COLS]”(而不是相反)以获得更好的 RAM 访问。或者我不会赢得很多时间?
我知道我可以将它与 GPU 并行化,但那是为了以后的阶段。