我刚刚将一些在Sun Java 1.4.2 VM上运行的旧Java源代码升级到Sun Java(JRE)6 VM.或多或少我唯一需要改变的是为一些抽象对象添加显式数据类型(Hashmap,Vector等).代码本身非常耗费内存,使用高达1G的堆内存(使用-Xmx1024m作为启动VM的参数).
由于我在较新的Java VM上阅读了很多关于更好的性能,这是我进行此升级的原因之一.
任何人都可以想到现在我的情况表现更糟的原因(当然,一般情况下,因为你不能看看代码)?
如果我想优化(速度明智)现有代码,有没有人建议非Java大师要寻找什么?任何提示,推荐的文档,工具?
谢谢.
这里的信息不多.但是这里有一些你可能想要探索的事情:
使用Xmx和Xms启动VM作为相同的值(在您的情况下为1024M)
确保使用服务器jvm dll启动虚拟机.
运行探查器以查看哪些对象占用内存或哪些对象没有被垃圾回收
使用jconsole连接VM并跟踪对象