VisualVM下载 Java VisualVM 可视化多线程监控分析工具 v2.0.7 官方安装版
Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您分享强大的分析能力,对 Java 应用程序做性能分析和调优。功能包括内存分析、快照功能、转储功能、CPU分析等等,系统管理员可以利用它来监测、控制Java应用程序横跨整个网络的情况。
它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,知识兔可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况。
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 知识兔双击这个文件就能看到一个比较直观的界面
什么是VisualVM
VisualVM是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JDK的一部分。
VisualVM可以做的:监控应用程序的性能和内存占用情况、监控应用程序的线程、进行线程转储(Thread Dump)或堆转储(Heap Dump)、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,保存快照以便脱机分析应用程序;同时它还支持在MBeans上进行浏览和操作。尽管 VisualVM自身要在JDK6以上的运行,但是JDK1.4以上版本的程序它都能被它监控。
在JDK1.6.07以上的版本中:到$JAVA_HOME/bin,知识兔点击jvisualvm.exe图标就可以启动VisualVM;当然也可以知识兔点击这里获取官方的最新版本,支持:英文,中文,日文。
VisualVM功能集成较多,知识兔这里只讨论它对象线程的监控分析。
VisualVM监控线程
当知识兔运行VisualVM的时候,知识兔可以在应用程序》本地中看到VisualVM和ecliPSe的运行程序,然后知识兔启动eclipse中的一个线程:com.longtask.thread.testVisualVm,知识兔可以看到在菜单中多了一个该线程的显示。知识兔点击右边的 线程 菜单,知识兔可以看到线程运行的跟踪情况。
知识兔点击 thread dump,知识兔可以生成该线程的运行情况的tdump文件,通过thread dump分享的相关信息,知识兔可以看到线程在什么地方被阻塞了以及线程的其他状态。
把日志另存为文件,到Thread Dump Analyzer的主页知识兔点击图标下载TDA,然后知识兔用TDA打开刚才VisualVM保存的 thread dump文件,查看相关的分析结果。
安装 VisualVM 上的插件
VisualVM 插件中心分享很多插件以供安装向 VisualVM 添加功能。知识兔可以通过 VisualVM 应用程序安装,或者从 VisualVM 插件中心手动下载插件,然后知识兔离线安装。另外,用户还可以通过下载插件分发文件 (.nbm 文件 ) 安装第三方插件为 VisualVM 添加功能。
从 VisualVM 插件中心安装插件安装步骤 :
从主菜单中选择“工具”>“插件”。
在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
逐步完成插件安装程序。
图 1. VisualVM 插件管理器
根据 .nbm 文件安装第三方插件安装步骤 :
从主菜单中选择“工具”>“插件”。
在“已下载”标签中,知识兔点击”添加插件”按钮,知识兔选择已下载的插件分发文件 (.nbm) 并打开。
选中打开的插件分发文件,并单击”安装”按钮,逐步完成插件安装程序。
图 2. 通过 .nbm 文件安装 VisualVM 插件
功能介绍
内存分析
VisualVM 通过检测 JVM 中加载的类和对象信息等帮助知识兔分析内存使用情况,知识兔可以通过 VisualVM 的监视标签和 Profiler 标签对应用程序进行内存分析。
线程分析
Java 语言能够很好的实现多线程应用程序。当知识兔对一个多线程应用程序进行调试或者开发后期做性能调优的时候,往往需要了解当前程序中所有线程的运行状态,是否有死锁、热锁等情况的发生,知识兔从而分析系统可能存在的问题。
快照功能
知识兔可以使用 VisualVM 的快照功能生成任意个性能分析快照并保存到本地来辅助知识兔进行性能分析。快照为捕获应用程序性能分析数据分享了一个很便捷的方式因为快照一旦生成可以在任何时候离线打开和查看,知识兔也可以相互传阅。
转储功能
线程转储的生成与分析
VisualVM 能够对正在运行的本地应用程序生成线程转储,把活动线程的堆栈踪迹打印出来,知识兔帮助知识兔有效了解线程运行的情况,诊断死锁、应用程序瘫痪等问题。
CPU 分析
VisualVM 能够监控应用程序在一段时间的 CPU 的使用情况,显示 CPU 的使用率、方法的执行效率和频率等相关数据帮助知识兔发现应用程序的性能瓶颈。知识兔可以通过 VisualVM 的监视标签和 Profiler 标签对应用程序进行 CPU 性能分析。
更新日志
变化
功能和改进。
GH-260: 完全支持在JDK 16上运行并监控/描述Java 16进程
GH-262: 增加对苹果M1的支持
GH-270: 从以前的VisualVM版本导入插件
GH-275: 增加关于启用模块的信息
GH-279: 增加保留尺寸计算的部分进度
GH-254: 更新器的品牌效应。
Python的堆栈跟踪
HeapViewer – 逻辑值增加了Instant, Attributes$Name, FDBigInteger, java.lang.module
HeapViewer – java.util类的逻辑值–集合现在显示元素的数量
Gradle的应用识别器
更新了JDK工具的应用识别器
API变更。
GH-282: 在org.graalvm.visualvm.lib.jfluid.heap包的公共API中添加泛型。
GH-283: 增加了从实例中获取Heap的方法。
修复了Bug。
GH-127: G1GC的最大堆不正确
GH-257: “打开快照失败。”由于没有完全读取压缩数据
GH-263: 保留的大小计算为负数
GH-268: 检测VisualVM是否在Eclipse OpenJ9上运行
GH-272: 计算引用时没有进度条
GH-273: NPE:无法调用 “java.lang.management.MemoryMXBean.gc()”
GH-274: 逻辑值:’…’被添加到完整的字符串中
GH-276: 缺少已知的阻塞方法
GH-277: 不正确的水平滚动
GH-278:LongBuffer.startReading()处的NPE。
GH-280: 在MacOS上选择背景颜色不正确
HeapViewer–PythonModule、SourceImpl$Key、InetSocketAddress、BigDecimal的逻辑值固定。
内存采样器–改进了重载下的刷新功能
改进了对IntelliJ应用程序的检测
下载仅供下载体验和测试学习,不得商用和正当使用。