jdk自带的JVM可视化监控工具使用

一、JVM可视化监控工具的使用

1、进入jdk的bin目录,找到jconsole.exe程序。如下图:

jdk自带的JVM可视化监控工具使用_第1张图片

2、打开window命令行窗口,进入jdk的bin目录下输入jconsole启动jvm可视化监控工具,如下图:

jdk自带的JVM可视化监控工具使用_第2张图片
3、或者直接双击jdk的bin目录下的jconsole.exe程序打开jvm可视化监控工具

jdk自带的JVM可视化监控工具使用_第3张图片

4、概览tab标签页可以查看堆内存使用量、线程、类、CPU占用率的折线图

jdk自带的JVM可视化监控工具使用_第4张图片
5、内存tab标签页可以查看堆内存使用量、非堆内存使用量、内存池“PS Eden Space”等等信息的折线图。如下图:
jdk自带的JVM可视化监控工具使用_第5张图片

6、线程tab标签页可以查看线程数折线图、每个线程的详细信息,如下图:
jdk自带的JVM可视化监控工具使用_第6张图片
7、类tab标签页可以查看已加载的类数及类的详细信息,如下图:
jdk自带的JVM可视化监控工具使用_第7张图片

二、测试实例

1、测试代码如下:

package com.rf.test2;

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

public class JconsoleTest {
	public byte[] b1 = new byte[128*1024];
	//测试内存的变化情况
	public static void main(String[] args) {
		try {
			Thread.sleep(5000);//为了能看到效果
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("start..");
		fill(1000);
	}
	
	public static void fill(int count){
		
		List<JconsoleTest> list=new ArrayList<>();
		for(int i=0;i<count;i++){
			try {
				Thread.sleep(5000);//为了能看到效果
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			list.add(new JconsoleTest());
		}
	}
}

2、启动测试代码
jdk自带的JVM可视化监控工具使用_第8张图片
3、,打开JVM可视化监控工具,查看内存变化。
jdk自带的JVM可视化监控工具使用_第9张图片jdk自带的JVM可视化监控工具使用_第10张图片jdk自带的JVM可视化监控工具使用_第11张图片
jdk自带的JVM可视化监控工具使用_第12张图片

三、修改测试实例代码

1、把byte[] b1 = new byte[128*1024];代码放在构造函数中,变成局部变量

public JconsoleTest(){
		byte[] b1 = new byte[128*1024];//放在构造函数中,变成局部变量
	}

2、在重新查看内存使用情况

因为放在构造函数中,变成局部变量,如果没有使用的情况下,垃圾回收器是会光顾。现在再去看内存情况,发现图像有所变化

jdk自带的JVM可视化监控工具使用_第13张图片

你可能感兴趣的:(jvm)