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

大小:21.58M类别:编程其它

官方安全无插件纠错

  • 更新时间2024-04-16
  • 版本v2.1.8
  • 系统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 控制台执行查询语句功能。
堆转储的摘要包括转储的文件大小、路径等基本信息,运行的系统环境信息,也可以显示所有的线程信息。
从类视图可以获得各个类的实例数和占用堆大小数,分析出内存空间的使用情况,找出内存的瓶颈,避免内存的过度使用。
通过实例数视图可以获得每个实例内部各成员变量的值以及该实例被引用的位置。首先需要在类视图选择需要查看实例的类。
此外,还能对两个堆转储文件进行比较。通过比较我们能够分析出两个时间点哪些对象被大量创建或销毁。

展开内容

猜您喜欢

java编程软件推荐

Java因其安全、高效、跨平台等特性目前广泛应用于各种平台。所以很多人投入到Java开发的学习中,俗话说的好,工欲善其事必先利其器,学习Java程序设计,需要方便易用的开发工具辅助。Java开发工具很多,而且各有优缺点,新手往往不知道java用什么软件编程最好。为此小编整理了一些适合新手的java编程软件,每种软件都有其优点和适用场景,开发者可以根据自己的需求和个人喜好来选择最适合的软件。

共有 6 款应用全部>>

类似软件

  • redmine(web项目管理软件)

    9.0/4.61M

    一套跨平台的项目管理系统

  • Hutool工具包

    9.1/2.99M

    Hutool工具包是一个Java工具集,软件类似于jodd和Apache commons lang的Java工具类。Hutool工具包对文件、流、加密解密、转码、正则、线程、XML、日期、Http客户端 等 JDK 方法进行封装,组成各种 Util 工具类。

  • CiteSpace官方版

    8.8/103.62M

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

  • YALMIP工具箱

    9.0/1.22M

    YALMIP官方版是一款用于求解线性规划、整数规划、非线性规划、混合规划的MATLAB工具箱,它允许用户以MATLAB语法的方式轻松构建和解决各种类型的优化问题,包括线性规划、整数规划、非线性规划和混合整数非线性规划等等!

网友评论

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

同类排行

  • md5校验工具绿色版

    9.0/16K

    许多开发的小伙伴是不是会遇到自己开发的软件在发布以后会被当作病毒查杀掉,这是因为用户没有给自己的软件加MD5码而被人添加了程序。这款md5校验工具就是一款帮助用户生成MD5码并进行验证的工具。

  • Apkdb反编译工具

    9.5/65.68M

    Apkdb官方版是一款操作简单、界面简洁、十分实用的一款安卓apk反编译工具,除了能直接反编译修改apk文件以外,Apkdb还是个工具集合箱,内部集合了当今最强悍,最犀利的APK及Dex文件编译工具。

  • visual paradigm(UML建模和CASE工具)

    9.0/756.21M

    visual paradigm电脑版是一款功能全面UML建模和CASE工具,软件包括设计共享、数据库设计和线框图等项目管理工具和模型,你可以对团队的能力进行预测,为开发人员提供了更快、更 好、花费更少的高质量程序开发方案,大大简化开发流程。

  • GitKraken官方版(GIT图形化工具)

    9.0/293.59M

    一个专业的GIT图形化工具

  • DevExpress Universal开发控件

    9.0/589.13M

    一款功能非常强大的控件编写工具

  • JSONBuddy(JSON编辑器)

    9.1/26.38M

    JSONBuddy官方版是一款功能强大的JSON数据交换格式编辑器,JSONBuddy基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

  • Jailer数据文件提取工具

    9.1/38.09M

    Jailer是一款功能十分强大的智能数据提取工具,它可以帮助你从关系数据库中直接导出连续、相关的行数据,然后你可以将这些数据直接在你自己的开发测试环境使用,并且支持DB2、Firebird、Derby等应用,例如你可以在不损害其它数据完整性的情况下删除某一特定数据行从而提高数据库

  • doxygen(帮助文档生成器) linux

    9.0/48.9M

    doxygen linux是一款开源跨平台类似于javadoc风格描述的文档,软件能够让我们的开发人员轻松为自己的应用程序制作各种帮助文档,完全支持C、C++、java、Object-C等语言,还支持部分的PHP、C#等,是一款非常不错的帮助文档生成器。

  • android ndk开发工具(Native Development Kit)

    9.0/628.62M

    android ndk开发工具又叫:ndk、Native Development Kit。是一款专门为安卓系统设计的安卓开发环境。主要作用是为用户开发安卓原生应用起到提供框架的作用。

  • Appium(Appium自动化框架)

    9.0/4.73G

    Appium官方版是一款开源的、能够多平台进行自动化测试的强大工具,使用软件用户就可以开始撰写和运行测试的主要指南,其中包括IOS、Android和Android旧设备的说明,如果用户有兴趣在物理硬件上进行测试,也可以通过真实设备指南进行操作。

  • OpenCV跨平台视觉库

    9.0/91.06M

    OpenCV是一款就BSD许可的开源发行的跨平台计算机视觉库,能够运行在各种用户熟悉的平台上,比如Linux、windows、Android、mac等等,因为其属于轻量级且高效的缘故,再加上有C函数和少量C++构成,软件同时提供了Python、Ruby、MATLAB等语言的接口,

  • WeFlow(web前端开发工具)

    9.1/103.17M

    WeFlow电脑版是一款非常好用的网站前端开发工具,web前端开发技术已经发展得飞快了,技术方案也是是日新月异,而今天小编为大家带来的WeFlow就是微信前端团队开源的前端开发工作流工具,而且WeFlow电脑版汇聚了众多最新技术方案的工作流项目,旨在让更多的前端开发者使用更优化,

  • YALMIP工具箱

    9.0/1.22M

    YALMIP官方版是一款用于求解线性规划、整数规划、非线性规划、混合规划的MATLAB工具箱,它允许用户以MATLAB语法的方式轻松构建和解决各种类型的优化问题,包括线性规划、整数规划、非线性规划和混合整数非线性规划等等!

  • xmlwriter(xml编辑器)

    9.1/4.74M

    xmlwriter是一款专业的XML编辑工具,如果你是刚接触XML,或者不熟练,那么xmlwriter就非常的适合你哦,xmlwriter拥有一个直观的编辑界面,还具有书签功能,自动查找并替代。

  • PHP Generator for MySQL Professional(PHP代码生成器)

    9.1/24.44M

    PHP Generator for MySQL Professional是一款功能实用的PHP代码生成器,它为用户们提供了MySQL数据库的PHP脚本生成服务,通过它用户可以非常轻松且高效的完成数据库层的构建工作,把更多的时间花费在业务逻辑层!