jvm07

下面来通过gc日志分析堆内存。

堆又分为了新生代,年老代。下面主要通过一些参数配置,来来控制新生代,老年代,内存如何分配等问题。

首先我们来了解几个相关的参数:

  • -XX:+PrintGCDetails:用于告诉虚拟机回收垃圾的时候顺便打印日志
  • -Xloggc:路径 :将打印出来的日志信息保存至指定的路径
  • -Xmn10M:设置新生代的内存大小
  • -XX:SurvivorRatio=8:1调整Eden和Survivor的比例为8:1

执行如下的实例代码:

package test03;

import java.util.ArrayList;
import java.util.List;

/**
 * 通过gc来分析堆内存
 *    调用参数: -Xms20m -Xmx20m -Xmn10 -XX:+PrintGCDetails -Xloggc:d:\gc1.log
 * @Package       test03
 * @Title:        Demo.java
 * @Company:      $
 * @author        BurgessLee 
 * @date          2018年8月20日-下午8:40:01
 * @Description:  $
 */
public class Demo {
	
	public static void main(String[] args) {
		List<Object> list = new ArrayList<Object>();
		
		while(true){
			list.add(new Object());
		}
	}
	
}

在对应的d盘下,找到对应的gc的log日志文件。

图一是gc第一部分的具体解释

堆内存具体说明详见下图:

以上是对gc日志的相关解释。

猜你喜欢

转载自blog.csdn.net/Burgess_Lee/article/details/81877397