一、简述
Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具。它集成了多个JDK命令行工具,使用Visual VM可用于显示虚拟机进程及进程的配置和环境信息(jps,jinfo),监视应用程序的CPU、GC、堆、方法区及线程的信息(jstat、jstack)等,甚至代替JConsole。在JDK 6 Update 7以后,Visual VM便作为JDK的一部分发布(VisualVM 在JDK/bin目录下)即:它完全免费。
主要功能:
● 1.生成/读取堆内存/线程快照
● 2.查看JVM参数和系统属性
● 3.查看运行中的虚拟机进程
● 4.程序资源的实时监控
● 5.JMX代理连接、远程环境监控、CPU分析和内存分析
官方地址:https://visualvm.github.io/index.html
二、安装
1、JDK9起,已不再集成visualvm,需要自己去visualvm官网下载。
下载地址:https://visualvm.github.io/
2、下载完成后,在etc文件夹下找到visualvm.conf文件,打开,并设置jdk路径。

然后此时你就可以双击打开了。
三、使用
1、程序
我们先整两个程序,然后以这两个程序为基础一点一点来看这个工具。
import java.util.ArrayList;
import java.util.Random;
/**
* @author: levi
* @description: -Xms600m -Xmx600m -XX:SurvivorRatio=8
* @date: 2022-11-3 21:33
* @version: 1.0
*/
public class OOMTest {
public static void main(String[] args) {
ArrayList<Picture> list = new ArrayList<>();
while (true){
try {
Thread.sleep(5);
}catch (InterruptedException e){
e.printStackTrace();
}
list.add(new Picture(new Random().nextInt(100 * 50)));
}
}
}
class Picture{
private byte[] pixels;
public Picture(int length) {
this.pixels = new byte[length];
}
}
import java.util.ArrayList;
import java.util.Random;
/**
* @author: levi
* @description: -Xms600m -Xmx600m -XX:SurvivorRatio=8
* @date: 2022-11-3 21:39
* @version: 1.0
*/
public class HeapInstanceTest {
byte[] buffer = new byte[new Random().nextInt(1024 * 100)];
public static void main(String[] args) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
ArrayList<HeapInstanceTest> list = new ArrayList<>();
while (true){
list.add(new HeapInstanceTest());
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
2、插件安装
visual vm这个东西后面我就叫他vv,这玩意其实默认打开的东西不是很全,他有些功能其实没有,比如看GC图,不过还好他提供一些插件的安装,安装这些插件可以让你使用一些扩展功能。



OK,此外其他的插件你也可以按照需求安装好,进行使用。
3、开始使用
我们随便起一个程序,然后使用vv连接好看一下他的监控信息。

3.1、overview
我们先来看面板上的overview选项。


我们看到这块主要是一些配置信息的展示监控。
3.2、monitor

这块就是设计一些内存和cpu的监控了,然后呢,我图里面是一个瞬时的捕捉截图,但是实际上这个图是不断变化的,需要注意这一点。
3.3、threads

3.4、visual gc
注意这个就是我上面安装的那个三方插件。

本文介绍VisualVM工具的主要功能,包括生成/读取堆内存/线程快照、查看JVM参数和系统属性等。并提供了从下载安装到具体使用的详细步骤,通过实例演示如何监控程序的运行状态。
1006

被折叠的 条评论
为什么被折叠?



