深入理解Java虚拟机笔记--垃圾回收GC
JVM通过新生代与老年代的GC搭配使用,关系图如下:
·
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()等),不频繁,速度较慢。
更多推荐
已为社区贡献3条内容
所有评论(0)