JVM调优维护常用工具之VisualVM 可视化优化工具
VisualVM 是一个工具,它提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于Java 技术的应用程序(Java 应用程序)的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织,并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息。
具体可以:
1、查看本地应用程序以及远程主机上运行的应用程序的相关数据:
1)显示虚拟机进程和进程的配置、环境信息(jps、jinfo)
2)监视应用程序的CPU、GC、堆、方法区及线程的信息(jstat、jstack) dump及分析堆转储快照(jmap)
2、捕获有关 JVM 软件实例的数据,并将该数据保存到本地系统,以供后期查看或与其他用户共享:
1)方法级的程序运行性能分析, 找出被调用最多、运行时间最长的方法
2)离线程序快照: 收集程序的运行时配置、线程dump、内存dump等信息建立一个快照, 可以将快照发送开发者处进行bug反馈等等
下载安装好VisualVM后启动可能出现找不到java1.8 or higher的提示,将JAVAHOME的值配置到相应位置即可:
etc/visualvm.conf文件中visualvm_jdkhome="C:\Program Files\Java\graalvm-jdk-17.0.10"修改为当前JAVAHOME。
启动后初始如下:
启动一个本地java应用程序:
本地应用自动会在本地部分如上图显示出来。具体常用如下:
1、堆转储快照
2、分析程序性能
在Profiler页签中, 可以对程序运行期间方法级的CPU和内存进行分析,。这个操作会对程序运行性能有很大影响, 所以一般不再生产环境使用。CPU分析将会统计每个方法的执行次数、执行耗时; 内存分析则会统计每个方法关联的对象数及对象所占空间。