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 款应用全部>>

类似软件

  • DBF Viewer 2000(DBF文件查看器) 4.05M DBF Viewer 2000 是强大、简洁和易用的DBF(Clipper,dBase,FoxBase,Foxpro,Visual Foxpro,Visual DBase,VO,DB2K)文件浏览器和编辑器。

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

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

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

网友评论

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

同类排行

  • SQLmap(自动化SQL注入工具) 7.28M SQLmap是一个开源免费,且非常知名的自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL和SQL注入漏洞,其广泛的功能和选项包括数据库指纹,枚举,数据库提权,访问目标文件系统,并在获取操作权限时执行任意命令。SQLmaps可自动检测和利用

  • Oracle JDK 17正式版 151.99M jdk17官方版是SunMicrosystems公司专门针对于java语言打造的开发工具包,jdk的出现是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。而这款jdk17则是目前已知的集大成者,在该版本的jdk中,更是集合了14种新

  • Apkdb反编译工具 65.68M Apkdb官方版是一款操作简单、界面简洁、十分实用的一款安卓apk反编译工具,除了能直接反编译修改apk文件以外,Apkdb还是个工具集合箱,内部集合了当今最强悍,最犀利的APK及Dex文件编译工具。你可以直接在【鼠标右键】创建快捷菜单,方便快捷。Apk

  • PHP Generator for MySQL(php代码生成器) 27M PHP Generator for MySQL是一款php的代码生成工具,该工具为用户们提供了MySQL数据库php脚本生成服务,通过该程序开发者可以非常轻松且高效的完成数据库层的构建工作,把更多的时间花费在业务逻辑层,当然啦对于有些地方的数据处理,由于

  • md5校验工具绿色版 16K 许多开发的小伙伴是不是会遇到自己开发的软件在发布以后会被当作病毒查杀掉,这是因为用户没有给自己的软件加MD5码而被人添加了程序。这款md5校验工具就是一款帮助用户生成MD5码并进行验证的工具。只要用户把软件拖拽到窗口里就能够自动获取任意文件的MD5校验值

  • zprotect(软件加壳工具) 8.99M 软件的加密设置菜单中包括文件信息、常规选项、高级选项、代码保护、插件管理和程序设置,你可以利用这些功能轻松地加密软件。

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

  • DBF Viewer 2000(DBF文件查看器) 4.05M DBF Viewer 2000 是强大、简洁和易用的DBF(Clipper,dBase,FoxBase,Foxpro,Visual Foxpro,Visual DBase,VO,DB2K)文件浏览器和编辑器。

  • xmlwriter(xml编辑器) 4.74M xmlwriter是一款专业的XML编辑工具,如果你是刚接触XML,或者不熟练,那么xmlwriter就非常的适合你哦,xmlwriter拥有一个直观的编辑界面,还具有书签功能,自动查找并替代。其他的功能还有XML联机帮助、插件管理、即时色彩编码转换、树

  • 白鹭游戏引擎Egret Engine 22.04M 完整的HTML5游戏开发的解决方案

  • 超龙apk反编译专家 6.88M 超龙APK反编译专家是一款免费但功能强大的安卓APK反编译软件,它能让你的APK文件的反编译变得轻松简单,让您在电脑上随意修改apk文件,可对apk文件进行解包、打包、签名、汉化等操作,还可以修改xlm、arsc等资源,从修改到签名一条龙服务,是apk文

  • DialogBlocks(资源编辑器) 7.49M DialogBlocks是由Anthemion推出的一款功能强大、操作简单实用性强并基于sizer的资源编辑器。DialogBlocks可以非常快速的生成对话框、向导以及框架。支持wxAuiToolBar、wxGridBagSizer、分析工具、输出C+

  • seraph脚本编辑器 3.76M seraph脚本编辑器是一款行内顶尖的脚本控制软件,不知道大家接触过鼠标点击器没有,其中有一个功能就是脚本来实现的,而seraph脚本编辑器就是这样的一样脚本生成器,设置键盘上的任意一个按键,然后seraph脚本编辑器就会直接生产脚本代码,非常的使用且方

  • Pestudio(编程辅助软件) 1.1M Pestudio官方版是一款绿色小巧、功能强大、使用方便的编程辅助应用程序代码验证工具。其主要功能是帮助用户一键获取并验证应用程序的相关信息,如:是否具备64位处理能力、是否过时、是否存在潜在安全风险、验证应用所需使用的.Net信息、验证MD5等等

  • findbugs插件 8.75M findbugs插件是一款开源java静态代码分析工具,能够通过检查java源文件中的类文件或jar文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,通俗的讲就是发现BUG。这款强大的软件不但能够作为Eclipse的插件使用,也可以为用户提供可视化的