JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具

Java与C++之间有一睹由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。

VisualVM是功能最强大的运行监视和故障处理程序之一,曾经在很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具。

1.启动VisualVM和按照插件

配置了环境变量直接在控制台中jvisualvm 或者在jdk bin目录中找到 jvisualvm.exe 点击就可以打开:

JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具

找到工具,插件,建议下载上面我点击到插件,可以查看gc日志分析。
实例代码:

/**
 * -Xms600m -Xmx600m -XX:SurvivorRatio=8
 * @author shkstart  shkstart@126.com
 * @create 2020  21:12
 */
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];
    }
}

启动程序,打开VisualVM,选中实例进程
JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具
在概要中可以看到我们到jvm参数,这里有我们刚刚启动时候所设置到参数,还有系统参数
JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具
生成dump文件,执行快照文件等

分析程序等性能:

JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具
程序等线程:
JVM性能监控与故障处理工具:VisualVM:多合-故障处理工具

其他等大家可以使用插件自己进行分析和玩玩,VisualVM就说到这里了,大家可以自行去进行操作。

上一篇:JVisualVM监控跑在本地上的项目JVM状态


下一篇:JVM - 堆区 为什么在jvm中,SurvivorRatio= 8,但是在visualVM中的实际比值确实6:1:1?