上面的三行是 GC 的详细输出,我们可以看到两次小收集和一次大收集。箭头前后的两个数字代表 GC 后活的对象的组合长度。括号内的数字代表合计的空间,等于堆大小减去一片生存空间。
除非你遇到暂停的问题,否则,可以分配足够的内存给 JVM,缺省的 64MB 总是太小。
设置 -Xms 和 -Xmx 为同样的值能提高 JVM 的预测,但是如果你的选择不对的话, JVM 不会补偿。
当增加处理器时,记得增加内存,因为分配可以并行进行,而 GC 不是并行的。
NewSize 和 MaxNewSize 绑定新生代的长度的低端和高端,设置为一样大小时和 -Xms 和 -Xmx 一样解决新生代的预测时间。
如果生存空间太小,拷贝直接进入旧生代,如果太大的话,会空闲在那里。
除非你碰到过渡的大收集或者暂停时间,否则分配足够的内存给新生代,缺省的 MaxNewSize (32MB) 往往太小。
如果需要的话,最大的永久代大小可以使用 MaxPermSize 增加。
直接的 GC 调用可以采用 -XX:+DisableExplicitGC 来关闭。
对于大服务器而言,1.4 的 JVM 能提供 64 bit 寻址能力,提供更大的新生代大小,并发收集来减少大收集引起的暂停的影响。
Java HotSpot Client VM 主要用于减少应用启动时间以及内存的 footprint 。
Java HotSpot Server VM 和 Java HotSpot Client VM 类似,但是在最大性能上作了调整。用于长期运行的服务应用。
Solaris 和 Linux 的 J2SE 1.3 随带 Java HotSpot Server VM 预安装。