我正在编写一些性能关键的 Java 代码,我真的不是 Java 专家,提前说一下。
我使用一个模型,其中几乎所有信息都可以从大约 1000 个整数(其中大部分为零)的变化数组中的非零条目的位置计算出来。为了减少这些计算,我正在研究算法,当数组更改而不是重新计算它们时,它会在恒定时间内更新信息。这可能会导致很多代码,例如
...
info1[x][y][a] = ...
info1[x][x%2+y][b] = ...
if( info3[x][y][c]!=0 )
info2[x][y] = ...
if( some condition involving ~10 array entries) {
/** some expensive algorithm that is hopefully called rarely **/
}
info3[x][y] = ...
...
所以我预计可能会有 10 次这样的连续且主要是独立的数组写入,计算量最少,这将构成程序必须运行的大部分行。我应该期望这样简单的连续操作的数量是相关的,还是 Java 有办法执行 20 次连续的简单数组写入,其速度与执行 10 或 2 次一样快?