j2se 5.0 hotspot 垃圾回收器的自动选择/优化机制

以下内容自sun白皮书1-150020中找到,我自己的整理了一下。


j2se 5.0 hotspot 垃圾回收器的自动选择/优化机制可以分为两个部分,

第一:根据运行的环境选择是进行Serial GC还是Parallel GC,具体为:

2个以上的处理器;2G以上的内存空间。就被认为是服务器环境,默认运行Parallel GC,堆的初始参数为:初始大小为内存的1/64,最大1GB;最大值是内存的1/4,最大1GB。

否则认为是客户端环境,默认运行Serial GC,堆的初始参数为:初始大小为4MB;最大64MB。


第二:对于Parallel GC,通过自动调节堆大小等其他参数,来满足用户设定的特殊需求,具体为:

1.垃圾回收最大暂停时间:

命令为-XX:MaxGCPauseMillis=n。JVM会努力使得暂停时间小于n ms,比如不断减少堆的大小来减少暂停时间。有可能会降低JVM的整个运行效率。这个参数无初始值。

2.运行效率:

命令为-XX:GCTimeRatio=n。JVM会尽力使得垃圾回收的时间:整个运行时间<1/(1+n)。比如可能会增加堆的大小。默认值为1%。

当以上两个目标都达到的情况下,JVM会尽力减小堆的大小。

JVM会优先满足最大暂停时间的目标。

你可能感兴趣的:(j2se 5.0 hotspot 垃圾回收器的自动选择/优化机制)