VisualVM(Java 程序性能分析工具)

大小:21.75M 类别:
  • 编程其它

官方安全无插件纠错

  • 更新时间2025-08-21
  • 版本v2.2
  • 系统Pc
  • 语言英文

VisualVM是一个专门用于监控Java的虚拟机JVM的监控工具,大家都知道java的环境下许多东西都是命令行的形式,而这款工具能够让用户获得一个图形界面来方便你快捷的查看多个java应用程序的相关信息。

通俗的讲,VisualVM是一种集成了多种JDK命令行工具的可视化工具,能够为我们的用户提供强大的分析能力,而且最主要的就是这些全部免费,你可以不花费任何代价,就可以利用这款软件管理好自己的java应用程序,当然用户如果想要使用最新的软件还是需要最新的java/soft/4845.html版本的。当然,VisualVM的功能还是非常强大的,一些工具能够帮助用户生成和分析海量数据、跟踪内存泄露、监控垃圾回收器、执行内存和CPU分析等等,有需要的用户不要错过哦。

VisualVM下载

VisualVM(Java 程序性能分析工具)特色

1、监视:监视是一种用来查看应用程序运行时行为的一般方法。通常会有多个视图(View)分别实时地显示 CPU 使用情况、内存使用情况、线程状态以及其他一些有用的信息,以便用户能很快地发现问题的关键所在。

2、转储:性能分析工具从内存中获得当前状态数据并存储到文件用于静态的性能分析。Java 程序是通过在启动 Java 程序时添加适当的条件参数来触发转储操作的。它包括以下三种:

3、系统转储:JVM 生成的本地系统的转储,又称作核心转储。一般的,系统转储数据量大,需要平台相关的工具去分析,如 Windows 上的 windbg 和 Linux 上的 gdb。

4、Java 转储:JVM 内部生成的格式化后的数据,包括线程信息,类的加载信息以及堆的统计数据。通常也用于检测死锁。

5、堆转储:JVM 将所有对象的堆内容存储到文件。

6、快照:应用程序启动后,性能分析工具开始收集各种运行时数据,其中一些数据直接显示在监视视图中,而另外大部分数据被保存在内部,直到用户要求获取快照,基于这些保存的数据的统计信息才被显示出来。快照包含了应用程序在一段时间内的执行信息,通常有 CPU 快照和内存快照两种类型。

7、CPU 快照:主要包含了应用程序中函数的调用关系及运行时间,这些信息通常可以在 CPU 快照视图中进行查看。

8、内存快照:主要包含了内存的分配和使用情况、载入的所有类、存在的对象信息及对象间的引用关系等。这些信息通常可以在内存快照视图中进行查看。

9、性能分析:性能分析是通过收集程序运行时的执行数据来帮助开发人员定位程序需要被优化的部分,从而提高程序的运行速度或是内存使用效率,主要有以下三个方面:

10、CPU 性能分析:CPU 性能分析的主要目的是统计函数的调用情况及执行时间,或者更简单的情况就是统计应用程序的 CPU 使用情况。通常有 CPU 监视和 CPU 快照两种方式来显示 CPU 性能分析结果。

11、内存性能分析:内存性能分析的主要目的是通过统计内存使用情况检测可能存在的内存泄露问题及确定优化内存使用的方向。通常有内存监视和内存快照两种方式来显示内存性能分析结果。

12、线程性能分析:线程性能分析主要用于在多线程应用程序中确定内存的问题所在。一般包括线程的状态变化情况,死锁情况和某个线程在线程生命期内状态的分布情况等。

VisualVM功能介绍

1、内存分析

VisualVM 通过检测 JVM 中加载的类和对象信息等帮助我们分析内存使用情况,我们可以通过 VisualVM 的监视标签和 Profiler 标签对应用程序进行内存分析。

在监视标签内,我们可以看到实时的应用程序内存堆以及永久保留区域的使用情况。

此外,我们也可以通过 Applications 窗口右击应用程序节点来启用“在出现 OOME 时生成堆 Dump”功能,当应用程序出现 OutOfMemory 例外时,VisualVM 将自动生成一个堆转储。

在 Profiler 标签,点击“内存”按钮将启动一个内存分析会话,等 VisualVM 收集和统计完相关性能数据信息,将会显示在性能分析结果。通过内存性能分析结果,我们可以查看哪些对象占用了较多的内存,存活的时间比较长等,以便做进一步的优化。

此外,我们可以通过性能分析结果下方的类名过滤器对分析结果进行过滤。

2、CPU 分析

VisualVM 能够监控应用程序在一段时间的 CPU 的使用情况,显示 CPU 的使用率、方法的执行效率和频率等相关数据帮助我们发现应用程序的性能瓶颈。我们可以通过 VisualVM 的监视标签和 Profiler 标签对应用程序进行 CPU 性能分析。

在监视标签内,我们可以查看 CPU 的使用率以及垃圾回收活动对性能的影响。过高的 CPU 使用率可能是由于我们的项目中存在低效的代码,可以通过 Profiler 标签的 CPU 性能分析功能进行详细的分析。如果垃圾回收活动过于频繁,占用了较高的 CPU 资源,可能是由内存不足或者是新生代和旧生代分配不合理导致的等。

在 Profiler 标签,点击“CPU”按钮启动一个 CPU 性能分析会话 ,VisualVM 会检测应用程序所有的被调用的方法。当进入一个方法时,线程会发出一个“method entry”的事件,当退出方法时同样会发出一个“method exit”的事件,这些事件都包含了时间戳。然后 VisualVM 会把每个被调用方法的总的执行时间和调用的次数按照运行时长展示出来。

此外,我们也可以通过性能分析结果下方的方法名过滤器对分析结果进行过滤。

3、线程分析

Java 语言能够很好的实现多线程应用程序。当我们对一个多线程应用程序进行调试或者开发后期做性能调优的时候,往往需要了解当前程序中所有线程的运行状态,是否有死锁、热锁等情况的发生,从而分析系统可能存在的问题。

在 VisualVM 的监视标签内,我们可以查看当前应用程序中所有活动线程和守护线程的数量等实时信息。

VisualVM 的线程标签提供了三种视图,默认会以时间线的方式展现。另外两种视图分别是表视图和详细信息视图。

时间线视图上方的工具栏提供了缩小,放大和自适应三个按钮,以及一个下拉框,我们可以选择将所有线程、活动线程或者完成的线程显示在视图中。

4、快照功能

我们可以使用 VisualVM 的快照功能生成任意个性能分析快照并保存到本地来辅助我们进行性能分析。快照为捕获应用程序性能分析数据提供了一个很便捷的方式因为快照一旦生成可以在任何时候离线打开和查看,也可以相互传阅。

VisualVM 提供了两种类型的快照:

Profiler 快照:当有一个性能分析会话(内存或者 CPU)正在进行时,我们可以通过性能分析结果工具栏的“快照”按钮生成 Profiler 快照捕获当时的性能分析数据。

应用程序快照:我们可以右键点击左侧 Applications 窗口中应用程序节点,选择“应用程序快照”为生成一个应用程序快照。应用程序快照会收集某一时刻的堆转储,线程转储和 Profiler 快照,同时也会捕获 JVM 的一些基本信息。

5、转储功能

线程转储的生成与分析

VisualVM 能够对正在运行的本地应用程序生成线程转储,把活动线程的堆栈踪迹打印出来,帮助我们有效了解线程运行的情况,诊断死锁、应用程序瘫痪等问题。

当 VisualVM 统计完应用程序内线程的相关数据,会把这些信息显示新的线程转储标签。

VisualVM 能够生成堆转储,统计某一特定时刻 JVM 中的对象信息,帮助我们分析对象的引用关系、是否有内存泄漏情况的发生等。

当 VisualVM 统计完堆内对象数据后,会把堆转储信息显示在新的堆转储标签内,我们可以看到摘要、类、实例数等信息以及通过 OQL 控制台执行查询语句功能。

堆转储的摘要包括转储的文件大小、路径等基本信息,运行的系统环境信息,也可以显示所有的线程信息。

从类视图可以获得各个类的实例数和占用堆大小数,分析出内存空间的使用情况,找出内存的瓶颈,避免内存的过度使用。

通过实例数视图可以获得每个实例内部各成员变量的值以及该实例被引用的位置。首先需要在类视图选择需要查看实例的类。

此外,还能对两个堆转储文件进行比较。通过比较我们能够分析出两个时间点哪些对象被大量创建或销毁。

展开内容

类似软件

网友评论

0人参与,0条评论
  • 评论需审核后才能显示

同类排行

  • SQLmap(自动化SQL注入工具)

    9.1/7.28M

    自动化检测与利用SQL注入漏洞

    查看
  • DeDeDark(Delphi反编译工具)

    9.3/5.34M

    DeDeDark(Delphi反编译工具)是一款十分实用的编程工具,它有着简体中文的操作界面,能够支持用户快速对delphi进行反编译处理,处理后,所有的目标dfm文件,可以进行编辑,但源代码还是会以asm形式显示。

    查看
  • CiteSpace官方版

    8.9/103.62M

    CiteSpace官方版是一款和Java相关的可视化文献分析软件,它能够显示一个学科或知识域在一定时期发展的趋势与动向,形成若干研究前沿领域的演进历程!并且,citespace能很好的帮助大家从众多的数据中如何找到自己所需要的,从而解决哪些文献是具有开创性和标志性的问题,有

    查看
  • maven插件

    9.0/8.21M

    Java项目构建与管理工具

    查看
  • php超文本预处理器

    9.0/16.34M

    php解释器是一款帮助用户在PHP目录下找到PHP.exe,使用户能够运行.PHP程序的一款软件,许多用户都知道,软件的开发离不开各种编译器,解释器之类的东西,小编带来的这款软件就类似于C++的编译器,不过C++需要手动,而PHP是全自动的,用户只需要调用这款软件就可以轻松的使得

    查看
  • Virtuous Ten Studio(apk反编译工具)

    9.0/23.75M

    安卓APK反编译与分析工具

    查看
  • Electron(桌面开发工具)

    8.8/1.86G

    Electron是一款Github上的跨平台桌面应用开发工具,支持用户使用最新的Web技术进行桌面应用的开发工作,目前不仅大量的小公司在用,一些比较大的知名公司也在使用这款强大的开发工具。

    查看
  • XmlToAccess官方版

    9.1/6.02M

    XmlToAccess官方版是一款小巧但实用的XML数据导入Access数据库工具。拥有向导和命令行两种操作模式,能够自动匹配表和字段,并且支持定时自动导入功能。向导模式更为简单易懂,命令行模式更为高效,能够快捷的将XML数据导入Access数据库。并且支持定时自动导入功能,轻松

    查看
  • cobertura覆盖率测试工具

    9.0/4.19M

    Cobertura是一种开源的代码覆盖率工具,用于衡量软件测试中代码的覆盖程度。它能够分析和报告测试套件对源代码的覆盖情况,帮助开发人员确定哪些部分的代码已经被测试覆盖,哪些部分还未经过充分的测试。

    查看
  • signtool GUI(数字签名软件)

    9.0/1.97M

    signtool GUI中文版是一款强大的软件数字签名工具,文件签名是一件重复繁琐,有浪费时间,而微软的代码签名工具signcode又只能一次签一个文件完全没什么效果。

    查看
  • DialogBlocks(资源编辑器)

    9.1/7.49M

    DialogBlocks是由Anthemion推出的一款功能强大、操作简单实用性强并基于sizer的资源编辑器。DialogBlocks可以非常快速的生成对话框、向导以及框架。

    查看
  • JSONBuddy(JSON编辑器)

    9.1/26.38M

    用于JSON数据编辑、格式化与验证的工具

    查看
  • EJ Technologies Perfino(jvm监控软件)

    9.1/105.37M

    EJ Technologies Perfino,简称Perfino。这是一款功能强大的JVM监测工具,不仅对JVM进行侦测,为您提供监控多个java虚拟机之间的活动和相互作用的方式,还可以对业务事务进行记录。

    查看
  • opengl es 3.0框架

    9.0/562K

    opengl es是OpenGL三维图形API的子集、为PDA和游戏主机等嵌入式设备设计,这个opengl es 3.0则是这一系列的第三代,该版本能够让我们的用户在支持迎检的要求上更加容易,同时改标准也为移动是被带来更多桌面版的功能。

    查看
  • Egret Conversion(Egret项目转换工具)

    9.0/12.21M

    Egret Conversion电脑版是一款能够快速的将用户现有的Flash项目转换成Egret HTML5项目的强大工具。软件由著名的引擎开发公司白鹭时代推出,是非常强大的一款国产工具,界面友好易用,无需其他辅助工具,功能强大可扩展,支持AS3等各种复杂的语法特性,涵盖了大部分

    查看