JVisualVM的使用教程

JVisualVM 的使用教程 例如,独立工具 jmap,jinfo,jstat 和 jstack 提供的大多数功能已集成到 Java VisualVM 中。1、找到 jvisualvm, 在jdk安装目录找到 jvisualvm.exe,${JDK_HOME}\bin\jvisualvm.exe。CPU分析(各个方法调用时间,检查哪些方法耗时多),内存分析(各类对象占用的内存,检查哪些类占用内存多)JVisualVM 使用简单,几乎0配置,功能还是比较丰富的,几乎囊括了其它JDK自带命令的所有功能。//休眠2s等待线程2锁定资源2。 阅读详情
AI摘要

本文介绍了如何下载和启动JVisualVM,安装VisualGC插件以增强虚拟机性能监控,包括死循环和普通程序的GC分析,以及CPU使用和内存管理。通过实例演示,学习者可以学会如何利用JVisualVM进行程序优化。

一、前言

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

jvisualvm工具使用 jvisualvm是JDK自带的具有图形界面操作功能的JVM性能监控和诊断工具,它不仅能分析和诊断堆转储文件,在线实时监控本地JVM进程,还能监控远程服务器上的JVM进程。 阅读详情

相关推荐

jvisualvm 使用教程

可惜年少不知jvisualvm 的好,错把 CRUD 当成宝。

Wayfreem的博客 4738

VisualVM

VisualVM VisualVM基本认识 官网http://visualvm.github.io/ **VisualVM 是一个工具,它提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序(Java 应用程序)的详细信息。**您可以查看本地应用程序以及远程主机上运行的应用程序的相关数据。此外,还可以捕获有关...

西京刀客 1万+

性能监控:jvisualvm的使用(JVM监控)

jvisualvm的使用

fen_fen的专栏 9580

jdk工具jvisualvm的使用

它通过集成一系列可视化的插件来实现强大的功能并支持拓展。选中一个java.io.File对象进入详细页面,可以查看该对象的所有字段信息和该对象的引用关系,“字段”区域包括java.io.File类以及其所有父类的字段以及对应字段的值,"引用"区域包括引用该File对象的对象。使用jvisualvm对java进程数据的监控,能够帮助我们提升排查Bug的效率。我们可以通过堆dump功能来判断一个类对象是否已经被垃圾回收器回收,还可以通过一个类对象的引用分析调用关系,对深入理解运行库的原理都很有帮助。

weixin_38526093的博客 4271

JVisualVM使用教程

JVisualVM可以实时监控本地和远程的Java程序,本文主要介绍了JVisualVM的功能和作用,如何下载安装,界面功能介绍,插件安装,以及远程连接。

ruanxinyan12345的博客 2261

基于ENVI5.6与SARscape的哨兵一号时序InSAR实战:从数据准备到PS/SBAS结果解译

本文详细介绍了基于ENVI5.6与SARscape软件,利用哨兵一号(Sentinel-1)卫星数据,进行PS-InSAR与SBAS-InSAR时序分析,以监测地表形变的完整实战流程。内容涵盖从数据下载、软件配置、预处理、核心处理步骤到结果解译与质量评估,重点解析了PS与SBAS方法的关键参数设置、常见问题及解决方案,旨在帮助用户掌握从数据准备到成果分析的完整技术链条。

oo7890的博客 633

Jvisualvm简单使用教程

本博客介绍一下jvisualvm的简单使用教程,jvisualvm功能还是挺多的,不过本博客之简单介绍一下 1、拿线程快照信息 在jdk安装目录找到jvisualvm.exe,${JDK_HOME}\bin\jvisualvm.exe 这里可以看到具体的线程快照信息: 收集后可以看到如图,右键,保存线程快照信息 收集线程快照信息主要是为了监控是否有出现死锁的情况: 观察收集到快照信息,拉到最...

Nicky's blog 5288

Linux蓝牙开发实战:5分钟搞懂BlueZ与D-Bus通信原理(附D-Feet调试技巧)

本文深入解析Linux下BlueZ蓝牙协议栈与D-Bus通信的核心机制,提供实战开发指南。通过D-Bus对象模型、信号订阅等关键技术点的详细讲解,配合D-Feet工具的高效调试技巧,帮助开发者快速掌握蓝牙设备管理与性能优化方法,提升物联网开发效率。

3a9bq4r8t2y的博客 327

Java监视器-JVisualVM的使用教程

Java监视器-JVisualVM的使用教程

lza20001103的博客 1401

【MediaPipe实战】从零构建实时人脸关键点检测与表情分析系统

本文详细介绍了如何使用MediaPipe框架从零构建实时人脸关键点检测与表情分析系统。通过Python代码实现,系统能够精准检测468个3D人脸关键点,并实时分析用户表情,适用于智能交互应用。文章包含环境配置、核心实现、可视化技巧及性能优化等实战内容,帮助开发者快速掌握深度学习在计算机视觉中的应用。

weixin_30836759的博客 72

elmos 524系列芯片笔记

芯片的工作工作原理:集成芯片Elmos524.03有发射回路和接收回路,手册有关的内部原理图,大致如下: 芯片会产生固有频率的电压信号,信号通过引脚DRV1、2输出给外部压电陶瓷片,产生固定频率的机械波,也就是所谓的超声波,超声波遇到障碍物时会反射,反射信号经过AINS、D引脚进入芯片,在芯片内部先后经过GAIN放大,滤波然后进入比较器,滤波后的信号(signal)同预先设定的阈值(threshold)比较产生信号输出。此信号最终会连接MCU处理器,需要重点关注。 基于这个内部的工作原

qq_38230916的博客 2483

jvisualvm oracle,Jvisualvm简单使用教程

本博客介绍一下jvisualvm的简单使用教程,jvisualvm功能还是挺多的,不过本博客之简单介绍一下1、拿线程快照信息在jdk安装目录找到jvisualvm.exe,${JDK_HOME}\bin\jvisualvm.exe 这里可以看到具体的线程快照信息:收集后可以看到如图,右键,保存线程快照信息 收集线程快照信息主要是为了监控是否有出现死锁的情况:观察收集到快照信息,拉到最后看看,如图,...

weixin_39947908的博客 189

cuMotion 入门教程(一)面向机器人学的GPU加速运动生成技术

NVIDIA cuMotion是一款高性能机器人运动生成库,专注于机械操作任务,利用GPU加速技术提升性能。开发者预览版支持运动学/逆运动学、碰撞感知路径规划、轨迹优化等功能,兼容任意自由度机器人。该库提供C++和Python接口,支持从URDF/XRDF文件加载机器人模型,包含世界建模、碰撞检测等工具。教程详细介绍了安装配置、机器人描述加载、运动学计算、世界建模、逆运动学求解以及轨迹优化等核心功能。cuMotion整合了Lula和cuRobo库的技术优势,将成为Isaac ROS的核心组件,适用于工业机器

2506_90492529的博客 2194

jvisualvm保姆级教程

这其中还有很多点解释得不够底层,后续我会继续补充,如为什么有两种方式,优势利弊都是什么,还有每一步的操作都代表了什么,版本之间的关系如何,这些问题我们都要心知肚明。我们需要注意:启动和配置:Java VisualVM通常位于JDK安装目录的bin目录下。在启动后,它会在左侧栏目列出所有运行中的Java进程。确保你选择了正确的进程进行监控。插件管理:Java VisualVM支持丰富的插件来增强其功能。你可以通过菜单栏的“工具”->“插件”来查看和管理已安装的插件。

Circ 7208

PyTorch强化学习实战(1)——强化学习(Reinforcement Learning,RL)详解

在本节中,开始进入探索强化学习 (Reinforcement Learning, RL) 之旅,首先剖析了强化学习的独特之处及其与监督学习、无监督学习范式的关系。随后系统学习了强化学习的基础形式化框架及其内部关联机制,并深入讲解了马尔可夫过程 (Markov Process, MP)、马尔可夫奖励过程 (Markov Reward Process, MRP) 和马尔可夫决策过程 (Markov Decision Process, MDP),为后续学习奠定基础。

盼小辉丶的博客 2050

YOLOv8交通监控全方案:精准车辆计数+违章(闯红灯/压线)识别,拿来就落地!

作为深耕计算机视觉落地的开发者,我见过太多交通监控的“伪智能”——传统系统要么车辆计数不准(漏计/重复计数),要么违章识别滞后(靠人工回看录像),甚至连“闯红灯、压线”这类常见违章都无法实时判定,完全满足不了实际交通管理需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 646

文件 jvisualvm_JVM之jvisualvm的简单使用

JVM之jvisualvm的简单使用阅读本篇教程之前,必须先阅读JVM之jconsole的简单使用这篇教程。jvisualvm比jconsole稍微好用了那么一点点,其实就是图形化界面做的比jconsole好看了一点。还有一点就是jvisualvm支持插件安装。本教程使用的JDK版本为:java.version=1.6.0_45;java.vm.name=Java HotSpot(TM...

weixin_36348080的博客 528

Plecs电力电子仿真专业教程-第一季 第一节 Plecs简介

Plces 电力电子仿真专业教程系列依托专业的电力电子仿真软件Plecs对各种电力电子常用的拓扑及实际设计的方案进行系统及仿真与软件代码仿真实践。通过对各种电路仿真原理的讲解及专业C语言代码程序的编写,提升学员的系统设计能力,软件编程能力与理论分析能力。

3637

JVM 调优实战--jvisualvm远程连接使用教程

jvisualvm远程连接 使用Java自带的jvisualvm调试Java程序,可以查看CPU、内存、类及线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows、服务端是Linux,并且是最小安装的Linux,没有图形界面,因此需要进行远程调试 一、客户端:Windows 打开%JAVA_HOME%/bin/jvisualvm.exe,在“远程”节点,...

学亮编程手记 1687

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

kafka消息丢失面试题,JVisualVM 的使用教程

6、可以看具体的线程快照信息右键,保存线程快照信息。

2401_84413657的博客 687

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【JVM调优工具篇】jvisualvm工具导出dump文件教程

1.首先启动程序(需确保程序一直在运行中) 2.打开JvisualVM工具 3.打开对应的程序进程 4.点击线程->线程dump 5.右键快照->另存为 6.结束

Kevinnsm的博客 1543

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jvisualvm工具使用-jvm本地调优(一)

根据定位信息,具体分析,是公司的分布式事务框架的缓存读取链路信息的时候进行了全量加载,导致的耗时长,从而导致事务迟迟不能提交,导致了死锁跟低吞吐量(分析过程的有大量公司框架类名不方便展示,这里就随便贴个了)开启vm连接(visual vm 连接到 jar包,可以做切片分析)点击cpu后迅速请求接口,接口执行完后停止捕获。解压即可使用,默认使用本地的jdk。3、使用jvisualvm。4、cpu或者内存捕获开启。

super_vegetable_bird的博客 945

使用jvisualvm.exe 的Btrace插件介绍/使用教程

一、背景 在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以 通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部 署后环境可能已被破坏,很难重新问题的场景。 二、BTrace功能 ...

weixin_30432179的博客 134
上一篇: MySQL中的join查询
下一篇: Android使用Okhttp进行数据交互
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值