我有:
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并行处理,但那是以后的事情。