JVisualVM的使用教程

article/2025/10/13 19:57:26

一、前言

JVisualVM是一个Java虚拟机的监控工具,要是需要对JVM的性能进行监控可以使用这个工具哦

使用这个工具,你就可以监控到java虚拟机的gc过程了

那么,这么强大的工具怎么下载呢?

在JDK1.6后的版本是自带这个工具,它就在你的jdk的bin目录上

image-20210528192339675

如果是默认安装的JDK,一般就在C盘,Program Files的java目录,就会看到你的jdk版本,点进去之后打开bin这个文件夹,就可以看到这个软件了

二、启动JVisualVM

启动方法:

1.进入jdk安装目录的bin目录,双击打开这个程序

2.菜单键+R,输入cmd进入命令行模式,输入命令jvisualvm 启动程序。注:要是使用命令行启动的软件,命令框可不能关闭哦,关闭了的话JVisualVM也会被关闭,切记切记!!!
image-20210529021530180
image-20210529021654563

启动程序之后进入这个界面,这个就是JVisualVM的使用界面了

image-20210528193420711

三、安装插件

使用之前,我们需要安装一个插件,来更好的来观察虚拟机的性能,点击上方的工具-插件

image-20210529022800418

在可用插件那里选择下载,安装一个VIsual GC的插件

image-20210529022846764

一般会报错,因为默认的链接已经给转移了,需要在设置那里把默认的链接更改

点击设置,编辑,把URL更改一下

image-20210529024936028

image-20210529025149446

那URL填什么呢?先确定一下自己的jdk版本号,然后用以下链接去查看URL

确认版本号,可以菜单键+R,执行cmd,输入java -version来查看自己的版本号

image-20210529025343765

比如我的是201

那就在这个网站:https://visualvm.github.io/pluginscenters.html
找到自己版本号的地址,复制URL到设置那里

image-20210529025607753

比如我的是JDK8的201,所以应该是131-291之间,所以我就复制下面那行蓝色的URL到设置的定制器中

image-20210529025821405

然后就可以下载想要的插件啦

image-20210529025950834

然后重启一下即可看到有visual GC这个选项了

image-20210529030154587

四、使用

那我先执行一个不停止的程序

image-20210529030350237

结果是不停的输出1,这是个死循环,我们再回去看看GC

image-20210529030403395

第一次观察

image-20210529030458038

几秒钟后观察

image-20210529030536262

我把这个程序停止掉之后,最后进行观察,左边的test这个java程序就不见了,右边的GC也就停了下来

image-20210529030659873

那现在就开始分析一下这几个过程,就看最后关掉之后的那个状态,可以看到GC time是指发生了多少次的GC,图中就是发生了233次GC,就花了276.256ms的时间,而下一行的Eden区,也是发生了223次GC,花费的时间也是276.256ms,很显然,发生的GC都是在Eden区,Old老年代区发生了0次GC,花费0s。

这只是个普通的死循环,工作量并不大,所以占用不了多少内存空间,根本就不会发生多少次GC,也根本不需要老年代区GC

image-20210529031841633

而右边的进度图,就是说明内存使用的情况,当图中的色块达到顶端的时候,就是内存满的时候,这时候就需要进行一次GC,把内存占用推送到下一个区,满一次清理一次就GC一次

除了可以检测java虚拟机的垃圾回收,还可以监视一下该java程序CPU的占用情况,线程等等。

当我们开发其他程序的时候,可能需要对程序做优化,就要结合这些指标来进行分析,确定优化的方法。比如说CPU使用率一直只有很低,那就说明CPU可以利用的内存比较大,可以适当降低其他的消耗,提升CPU损耗来提升效率等等

image-20210529032509601

当然,除了我提及的各种性能监控和GC过程的查看,还有其他的功能可以使用,比如性能风险,观察各进程的运行情况等等
image-20210529033250362

image-20210529033341558

最后,可能会有小伙伴会问,如果执行的程序不是死循环,而是一个普通的输出呢。如果执行的是那种执行完毕就会停止的,比如我这里把循环条件去掉,使程序只执行一次后停止
image-20210529034047637
image-20210529034106601

点击运行之后返回JVisualVM来查看结果,但JVisualVM并没有显示这个java进程,或者是一闪而过。这是因为JVisualVM只能实时监控到执行中的java程序,因为改动过的程序执行了输出之后就结束了,所以JVisualVM根本没办法去监控程序的状态,前面停止之后还能看到,是因为你已经在停止之前打开了这个程序的监控,在点了停止之后,显示的是停止之前最后一刻的状态

image-20210529034309071
今天的分享就到此结束了,感觉自己又向前迈了一小步,喜欢本文章的小伙伴可以点个赞或者留个评论支持一下哦


http://chatgpt.dhexx.cn/article/X6ZVWEy5.shtml

相关文章

JVisualVM的使用实录

一、前言 JVisualVM是一个Java虚拟机的监控工具,要是需要对JVM的性能进行监控可以使用这个工具哦 使用这个工具,你就可以监控到java虚拟机的gc过程了 那么,这么强大的工具怎么下载呢? 在JDK1.6后的版本是自带这个工具&#xf…

jvisualvm的使用

jvisualvm的使用 VisuaIVM(All-in-One Java Troubleshooting Tool)是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾…

JVisualVM初步使用

JVisualVM初步使用 1、前言 jvm调优工具有常见的为Jconsole,jProfile,VisualVM, Jconsole: 为jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler:商业软…

JVisualVM 简介

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来…

VisualVM

VisualVM VisualVM基本认识 官网http://visualvm.github.io/ **VisualVM 是一个工具,它提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序(Java 应用程序)的详细信息。**…

JAVA性能分析工具--Jvisualvm使用方法

JDK自带的JAVA性能分析工具。它已经在你的JDK bin目录里了,只要你使用的是JDK1.6 Update7之后的版本。点击一下jvisualvm.exe图标它就可以运行了。 这里是VisualVM 的官方网站:https://visualvm.dev.java.net,资料很全,同时提供V…

jvisualvm使用

一、jvisualvm安装 1、Java版本在1.8及1.8版本以下,JDK已经自带这个工具 2、Java版本在1.8的,需要安装visualvm https://visualvm.github.io/download.html 对于自行安装的版本,运行前需要配置一下路径 进入visualvm的etc的目录,修改visualvm.conf文件…

生成特定架构内核cscope数据库

tags代码浏览工具 tags工具介绍 一般来说,如果我们想要研究一个c/c项目的源码,我们首先要做的是为该项目生成tags文件,tags文件种类有很多,比如 ctags、etags、cscope、gtags 等,有关他们的区别可以参考下面链接里的…

Emacs+cscope手动创建索引(感受cscope的强大)(八十三)

1.cscope 创建索引 <1>.创建索引文件列表cscope.files # find . ! -path "./out/*" ! -path "./prebuilts/*" ! -path "./frameworks/*" -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cp…

vim cscope java_【转】Cscope的使用(领略Vim + Cscope的强大魅力)

【转】Cscope的使用(领略Vim Cscope的强大魅力) 1、Cscope介绍 Cscope是类似于ctags一样的工具&#xff0c;但可以认为她是ctags的增强版&#xff0c;因为她比ctags能够做更多的事。在Vim中&#xff0c;通过cscope的查 询&#xff0c;跳转到指定的地方就像跳转到任何标签&…

Vim/Cscope使用

&#xff1a;cs find s ---- 查找C语言符号&#xff0c;即查找函数名、宏、枚举值等出现的地方 &#xff1a;cs find g ---- 查找函数、宏、枚举等定义的位置&#xff0c;类似ctags所提供的功能 &#xff1a;cs find d ---- 查找本函数调用的函数 &#xff1a;cs find c ---- 查…

Cscope的使用

首先在目录下建立cscope索引文件 find -name *.c > cscope.file cscope -Rbkq 这个命令会生成三个文件&#xff1a;cscope.out, cscope.in.out, cscope.po.out。 其中cscope.out是基本的符号索引&#xff0c;后两个文件是使用"-q"选项生成的&#xff0c;可以加快c…

Cscope的使用(领略Vim + Cscope的强大魅力)

http://blog.csdn.net/dengxiayehu/article/details/6330200 1、Cscope介绍 Cscope是类似于ctags一样的工具&#xff0c;但可以认为她是ctags的增强版&#xff0c;因为她比ctags能够做更多的事。在Vim中&#xff0c;通过cscope的查询&#xff0c;跳转到指定的地方就像跳转到任…

计算机联网记录能删除吗,电脑怎么删除路由器wifi记录

这个网络时代里面我们最常用来连接网络的设备就是路由器了&#xff0c;特别是在我们的生活中很难缺少wifi网络&#xff0c;当然我们有时候也可能会想要删除wifi网络&#xff0c;那么你知道电脑怎么删除路由器wifi记录吗?下面是学习啦小编整理的一些关于电脑删除路由器wifi记录…

mysql查询删除的数据历史记录_查询数据库各种历史记录

在SQL Server数据库中,从登陆开始,然后做了什么操作,以及数据库里发生了什么,大多都是有记录可循的,但是也有一些确实无从查起。 一.数据库启动记录 1.最近一次启动SQL Server的时间 select sqlserver_start_time from sys.dm_os_sys_info; --也可参考系统进程创建的时间,…

怎样删除计算机硬盘记录,有什么方法能删除电脑里使用过的移动硬盘的记录

第一步&#xff1a;通过硬件检测软件(EVEREST Ultimate)得到你的移动存储器的硬件编号&#xff0c;例如我的魅族E5为&#xff1a;Ven_SigmaTel&Prod_MSCN&Rev_0100\0002F68C022B070F&0。0002F68C022B070F&0为硬件编号&#xff0c;具有唯一性。 3 T* }5 {/ T3 ]…

sqlserver恢复已经删除的表记录

在发生删除操作后&#xff0c;发现要找回删除的记录&#xff0c;此时灾难发生&#xff0c;为了挽回记录&#xff0c;操作步骤如下&#xff1a; 首先保证数据恢复模式是完整的&#xff0c;然后才能做下面的操作&#xff1a; 强烈建议数据库创建之后做个完整的备份&#xff0c;…

数据库的主键ID设置为自动增加,删除记录后的记录还是递增的,如何重新从1开始增加呢?

操作 数据库数据 删除了7和8之后添加了一条新数据 问题 删除记录后的记录还是递增的&#xff0c;如何重新从1开始增加呢&#xff1f; 解决 truncate table 表名;注意 此语句会把表中数据清空

如何查看AD域账号的删除记录

**如何查看AD域账号删除记录及恢复**在日常AD域管理中&#xff0c;有时候我们不小心删除了域账号&#xff0c;或者我们想查看这个域账号是什么时候创建并删除的&#xff0c;那怎么办&#xff1f;是否可以恢复&#xff1f;其实微软本身已经为我们的账号信息做了备份机制&#xf…

计算机上网记录怎么清除,电脑浏览器上网记录怎么删除

我们使用浏览器上网时都会生成大量的缓存临时文件与访问过的url地址&#xff0c;有时为了我并不想让其它人看到我这些信息要怎么清除呢&#xff0c;下面我们一起来看看吧。 1.在这里我们只要打开浏览器&#xff0c;然后点击菜单上的“查看”->“历史记录”如下图所示(搜狗浏…