深入理解Java虚拟机笔记--垃圾回收GC

来源:互联网 发布:java 潜艇发射导弹 编辑:程序博客网 时间:2024/05/17 23:21

JVM通过新生代与老年代的GC搭配使用,HotSpot JVM1.6的GC关系图如下:


具体每种GC的介绍这里不再赘述。

JVM可以设置GC参数来搭载不同的GC:

在Client模式下的默认值为UseParNewGC,它采用ParNew + Serial Old的GC组合。

在Server模式下的默认值是UseParallelGC,它采用Parallel Scavenge + Serial Old的GC组合。

JVM可以通过以下参数记录GC日志:

-XX:+PrintGCDetails             记录GC日志,并且在进程退出时输出当前内存各区域的分配情况。

-XX:+PrintGCDateStamps   打印出垃圾回收发生的时间是距离HotSpot VM启动时间的秒数

-Xloggc:<file>                         将虚拟机每次垃圾回收的信息写到日志文件中,文件名由file指定,文件格式是平文件,内容和-verbose:gc输出内容相同。

在eclipse里指定JVM参数:右键选择待运行的java程序,选择Run As -> Run Configurations, 在Arguments里的VM arguments里填写jvm参数。


Minor GC vs Full GC

Minor GC (新生代GC), 非常频繁,回收速度较快。

Major GC/Full GC (一般情况下是老年代GC,其他情况比如Perm Gen满,System.gc()等),不频繁,速度较慢。








0 0
原创粉丝点击