我正在编写一些性能关键的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的速度一样快?
答案 0 :(得分:1)
不完全清楚您的问题是什么,所以我将介绍几点:
答案 1 :(得分:0)
实际的过程或读写数组的20个元素应该不是很大的性能问题,尽管它取决于代码的性能如何。 我会尝试实现你必须看看它是否符合你的要求,我相信数组数据结构应该足够快,以便用Java完成大多数性能优化的任务。
资料来源:最近致力于为大学工作重新实施ArrayList。