前记
之前看过 jvisualvm,但是那个时候对 JVM 并不是很熟悉,后面看了下八股文,看了下 JVM 的相关知识之后,发现多了解点 JVM 的东西,对我们 CRUD 其实是有指导意义的,就比如我们通常会 new 一堆的没有用到的对象出来,这些其实就是会占用 JVM 内存空间。其实很久之前就玩过了这个 jvisualvm,可惜年少不知 jvisualvm 的好,错吧 CRUD 当成宝。
看来有些时候,该看的,该学的,都不能偷懒。废话说了这么多了,那我们开始吧:
老版本
在JDK 对应的 bin 路劲下,存在这个对应的可执行文件,我在 JDK-17 的包下面没有找到(点击这里 VisualVM: Home,或者看文章后面),然后在 JDK 1.8 的包下面看到了
启动
在 cmd 中 直接执行 jvisualvm.exe 就好,运行完了之后,就可以看到 jvisualvm 的程序界面了:
安装插件
为了方便于我们更加直观的观察 Heap 堆的情况,我们可以来安装一个插件 Visual GC。
在 “工具 -> 插件” 中
找到 “设置 -> 编辑”
一般会报错,因为默认的链接已经给转移了,需要在设置那里把默认的链接更改
修改 URL
那URL填什么呢?先确定一下自己的jdk版本号,然后用以下链接去查看URL
确认版本号,可以菜单键+R,执行cmd,输入 java -version 来查看自己的版本号,比如我的 jdk8 是 91 的版本
访问网站:VisualVM: Plugins Centers, 找到自己对应的,比如我的就在下面的区间,找到下面的连接地址:
修改完之后:
其实这个时候,已经可以看到可用插件就有 16个了
下载插件
勾选之后,点击安装就搞完了
然后选择一个就对应的进程就可以看到了
高版本
高版本需要单独下载,这里我们访问下官网,VisualVM: Download,下载最新的就好,下载完了之后,解压
修改配置文件
修改为自己的JDK 路径就好
启动
我们找到 bin 路径下面的对应的 exe 文件,双击启动
启动之后的界面
安装插件
采用同样的方式下载就好,不过,最新的不用我们再去找对应的插件地址了:
找到 Visual GC 就好 ,install 就好
监控
我们来准备一段测试代码
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class HeapTest {
public static void main(String[] args) throws InterruptedException {
List list = new ArrayList();
while (true) {
list.add(new HeapTest());
TimeUnit.SECONDS.sleep(3);
}
}
}
然后找到对应的线程ID,进入查看
好了,就到这里吧,后面还有一些性能指标,这个大伙可以去搜索下看看。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处: