Bry*_*ead 14 java arrays performance arraylist
我有一个程序,我需要在尽可能短的时间内(以毫秒为单位)对类似List的对象进行100,000到1,000,000次随机读取读取,以实现类似细胞自动机的程序.我认为我正在使用的更新算法已经过优化(有效跟踪活动单元等).列表确实需要改变大小,但性能并不重要.所以我想知道使用Arrays而不是ArrayLists的性能是否足以在如此短的时间内处理那么多读取时产生差异.目前,我正在使用ArrayLists.
编辑:我忘了提到:我只是存储整数,所以另一个因素是使用Integer包装类(在ArrayLists的情况下)与int(在数组的情况下).有没有人知道使用ArrayList实际上是否需要3个指针查找(一个用于ArrayList,一个用于底层数组,一个用于Integer-> int),因为数组只需要1(数组地址+偏移到特定的INT)?HotSpot会优化额外的外观吗?这些额外的观察有多重要?
Edit2:另外,我忘了提到我还需要进行随机访问写入(写入,而不是插入).
尝试两者,但要衡量.
最有可能你可以一起破解一些东西,使内循环使用数组而不改变所有那么多代码.我怀疑HotSpot已经内联了方法调用,你将看不到性能提升.
另外,尝试Java 6更新14并使用-XX:+ DoEscapeAnalysis
| 归档时间: |
|
| 查看次数: |
32563 次 |
| 最近记录: |