GitHub:VisualVM 已经被 Oracle 在 GitHub 上开源了,因此我们可以直接在 GitHub 上下载安装包。
IDEA 安装配置监控JVM 插件
打开Preference --> Plugins --> 搜索VisualVM --> install --> Apply
IDEA配置VisualVM
重新打开Preference --> Other Settings --> VisualVM Launcher --> VisualVM executable
Other Settings --> VisualVM Launcher 这部分设置第一步"plugins中安装VisualVM Launcher插件"之后才会显示。
jdk 8
VisualVM executable 填 你的jdk8路径/bin/jvisualvm.exe
, 例如C:/Program Files/Java/jdk1.8.0_131/bin/jvisualvm.exe
jdk 11
发现JDK11的目录里,bin目录下并没有jvisualvm的可执行文件jvisualvm.exe
.
原来从jdk 9开始, visualVM不再集成在Oracle JDK中, 需要单独下载安装。
-
IDEA 的VisualVM executable里也有提示链接: VisualVM executable
-
Windows 下载visualvm_215.zip
- 解压visualvm_215.zip为visualvm_215,我是放在
Z:\Program Files\visualvm_215
- VisualVM executable 填写
visualvm_215路径/bin/visualvm.exe
visualvm_215路径/etc/visualvm.conf
里面配置JDK路径,例如visualvm_jdkhome="C:/Program Files/Eclipse Adoptium/jdk-11.0.13.8-hotspot"
- 如果显示检测不到本地运行Java程序, 就到刚刚
visualvm_215路径/bin/jvisualvm.exe
的文件处,右击选择以管理员身份运行
- 监控的本地jdk路径(不修改也是能用,只是不能显示详细的包名和类名,只显示进程号难以区分)
- 解压visualvm_215.zip为visualvm_215,我是放在
-
MacOS 下载VisualVM_215.dmg 安装
- VisualVM executable 填写
/Applications/VisualVM.app/Contents/MacOS/visualvm
/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf
里面配置JDK路径,例如visualvm_jdkhome="/opt/homebrew/Cellar/openjdk@11/11.0.15/libexec/openjdk.jdk/Contents/Home"
(参考:Mac安装VisualVM Mac版 V2.0.7)
- VisualVM executable 填写
Preference --> Other Settings --> VisualVM Launcher --> Custom JDK home path 默认使用project配置的JDK,如果找不到,就会使用填写的指定的jdk。
IDEA启动VisualVM
然后重启IDEA,点击Run
就发现多了两个选择。点击这两个选项,就可以启动VisualVM。
Run with VisualVM
DeBug with VisualVM
启动按钮diabled状态无法启动VisualVM
可以参考这篇文章:IDEA安装了VisualVM Launcher插件无法调试使用
但是仍然没有解决我的问题,仍然是disabled状态。后来在左下方“Console” tab下看到了VisualVM一个图标,实测可用。
命令行启动VisualVM
-
本地启动Java服务后,保持运行;打开终端,输入jps命令回车,查看进程ID,例如进程ID为44620;
jps
-
打开终端,输入jvisualvm命令、参数和进程ID后回车,会自动打开此软件,命令如下:
jvisualvm --openpid 44620
之后,稍等片刻,会自动弹出Java VisualVM软件界面。
查看VisualVM
可以改变在VisualVM --> Tool --> Plugins --> Settings --> Edit
Java VisualVM 插件各个版本: https://visualvm.github.io/pluginscenters.html
Java VisualVM软件操作
1、点击次级导航Tab中Threads项,之后点击Heap Dump按钮,会打印输出线程详细状态;
2、点击次级导航Tab中Monitor项,之后点击Heap Dump按钮,会输出内存镜像文件(.hprof文件,此文件可使用Eclipse平台的Memory Analyzer Tool,即MAT,进行详细分析),此文件的完整路径,在界面中有显示;