# 监控本地 JAVA 进程

相当于是前面那些命令的一个集成

JVisualVM 是 java 自带的工具,一般在 jdk 安装目录下的 bin 目录下

# 笔者这里是 mac 系统,查找这个文件名
mrcode:chapter2 mrcode$ mdfind -name 'jvisualvm'
/usr/bin/jvisualvm   # 这里有一个指令,可以直接在中断中运行 jvisualvm 就打开了
/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/jvisualvm
1
2
3
4

打开这个软件后的截图如下

image-20210117210523984

可以看到上面直接就列出来了,入门指南、故障排除指南等文档。

在左边「本地」,会直接列出本机的 JAVA 进程虚拟机程序。

这里讲解其中一些,另外一些和前面讲解的差不多,比如这个线程

# 线程

image-20210117211938381

它有一个线程可视化,右侧还有一个 「线程 Dump」这个就是使用 jstack 输出信息。

这个线程可视化还是很方便,很清晰的就能找到产生死锁的两个线程。

# 抽样器

image-20210117215032826

我们最关注的两个性能数据都在这里了

# CPU 抽样器

它可以显示方法使用 CPU 时间,一般用于发现热点方法。

image-20210117215231403

比如上图中上一节课我们做的死循环方法,这里就能直接看到。特别是定位程序慢的时候,非常好用

# 内存抽样器

差不多类似 gc 数据,不过这里更详细更直观,能实时动态的展示每个对象的信息

image-20210117215523473

# 插件管理

# Visual GC

比如这个界面,名为 Visual GC 的界面

image-20210117215848221

该功能默认是没有的,是通过插件安装的。

插件功能通过:顶部菜单「工具」→「插件」打开插件管理中心

image-20210117220016498

笔者这里是可以直接操作安装的,安装完成之后,需要勾选插件,然后重启 JVisualVM 就会出现这个功能了。

如果说,你打开之后直接操作安装无效,则查看下设置里面

image-20210117220446231

需要添加插件中心地址,这个需要添加与你 jdk 版本一样的,里面的地址在 官网这个页面 (opens new window)

# BTrace Workbench

这一个是后面课程中要用到的 BTrace 图形化界面。

安装后,是通过右键的方式进入,如下图

image-20210117221101215

image-20210117221114887

就可以直接编辑 BTrace 脚本了。