【发布时间】:2008-12-12 11:24:27
【问题描述】:
我刚刚将一些在 Sun Java 1.4.2 VM 上运行的旧 Java 源升级到 Sun Java (JRE) 6 VM。或多或少我唯一需要改变的是为一些抽象对象(Hashmap's、Vector's 等)添加显式数据类型。代码本身非常占用内存,最多使用 1G 的堆内存(使用 -Xmx1024m 作为启动 VM 的参数)。
由于我阅读了很多关于在较新的 Java VM 上性能更好的文章,这就是我进行此升级的原因之一。
- 谁能想到我现在的情况下性能更差的原因(当然,只是一般情况下,因为您无法查看代码)?
- 如果我想优化(速度方面)现有代码,有没有人给非 Java 专家一些建议?有任何提示、推荐的文档、工具吗?
谢谢。
【问题讨论】:
-
我怀疑这真的会影响任何事情,但是当你不需要它的内置同步/线程安全性时使用 Vector 可能是矫枉过正
-
您是否尝试过在 Java 6 上运行原始的纯正 1.4.2 编译代码?您可能想要选择特定的垃圾收集器。也可能使用 -d32 来确保您没有为指针使用太多内存。
标签: java performance jvm sun