西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发java → VisualVM 使用操作界面 VisualVM 安装及插件安装教程

VisualVM 使用操作界面 VisualVM 安装及插件安装教程

相关软件相关文章发表评论 来源:西西整理时间:2017/5/15 11:53:31字体大小:A-A+

作者:西西点击:0次评论:0次标签: VisualVM

Java VisualVMv1.3.9 官方版
  • 类型:编程工具大小:18.4M语言:中文 评分:10.0
  • 标签:
立即下载

VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。

VisualVM 窗口

在启动 VisualVM 后,将打开 VisualVM 主窗口。VisualVM 主窗口分为两个窗口。

首次启动 VisualVM 时,“应用程序”窗口显示在主窗口的左侧,“起始页”显示在主窗口的右侧。“起始页”包含指向 VisualVM 文档 Web 页和其他资源的链接。
注意:缺省情况下,每次启动 VisualVM 时都将打开“起始页”。通过从主菜单中选择“帮助”>“起始页”,可以随时打开“起始页”。此外,还可以通过取消选中“启动时显示”复选框隐藏“起始页”。

“应用程序”窗口

启动应用程序后,将在 VisualVM 主窗口的左侧打开“应用程序”窗口。“应用程序”窗口是浏览正在运行的应用程序详细信息的主入口点。“应用程序”窗口采用树结构,以便您可以快速查看本地计算机和任何已连接的远程计算机上运行的应用程序。您还可以从“应用程序”窗口中访问核心 dump (Solaris/Linux) 和保存的快照。

右键单击“应用程序”窗口中的某个节点将打开一个弹出式菜单,通过该菜单可以执行与该节点相关的操作,其中包括打开应用程序标签、生成堆 dump 和线程 dump,以及在主窗口中打开快照。

主窗口

主窗口中显示有关应用程序的详细信息。在查看有关应用程序的数据时,主窗口中的每个标签表示一个应用程序,这使您可以轻松查看和导航数据。保存的线程 dump 和堆 dump 也可以在主窗口中打开。

VisualVM 插件

通过使用“插件”管理器安装由“VisualVM 插件中心”提供的插件,可以向 VisualVM 添加功能。您也可以开发自己的插件,然后将其添加到更新中心来扩展 VisualVM 的功能。

例如,安装 VisualVM-MBeans 插件可以向应用程序标签中添加 "MBeans" 标签,通过此标签,可以在 VisualVM 内监视和管理 MBeans。

安装 VisualVM 插件:

从主菜单中选择“工具”>“插件”。

在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。

逐步完成插件安装程序。

VisualVM 安装

VisualVM 是一个性能分析工具,自从 JDK 6 Update 7 以后已经作为 Oracle JDK 的一部分,位于 JDK 根目录的 bin 文件夹下。VisualVM 自身要在 JDK6 以上的版本上运行,但是它能够监控 JDK1.4 以上版本的应用程序。下面主要介绍如何安装 VisualVM 以及各种 VisualVM 上的插件。

安装 VisualVM

VisualVM 项目的官方网站目前提供英文版本和多语言支持版本下载。多语言版本主要支持英语、日语以及中文三种语言。如果下载安装多语言版本的 VisualVM,安装程序会依据操作系统的当前语言环境去安装相应 VisualVM 的语言版本。最新 VisualVM 版本主要支持的操作系统包括:Microsoft Windows (7, Vista, XP, Server)、Linux、Sun Solaris、Mac OS X、HP-UX 11i。本文以 Microsoft Windows XP 为安装环境并支持中文。

从 VisualVM 项目的官方网站上下载 VisualVM 安装程序。

将 VisualVM 安装程序解压缩到本地系统。

导航至 VisualVM 安装目录的 bin 目录,然后启动 jvisualvm.exe。

安装 VisualVM 上的插件

VisualVM 插件中心提供很多插件以供安装向 VisualVM 添加功能。可以通过 VisualVM 应用程序安装,或者从 VisualVM 插件中心手动下载插件,然后离线安装。另外,用户还可以通过下载插件分发文件 (.nbm 文件 ) 安装第三方插件为 VisualVM 添加功能。

从 VisualVM 插件中心安装插件安装步骤 :

从主菜单中选择“工具”>“插件”。

在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。

逐步完成插件安装程序。

图 1. VisualVM 插件管理器

根据 .nbm 文件安装第三方插件安装步骤 :

从主菜单中选择“工具”>“插件”。

在“已下载”标签中,点击"添加插件"按钮,选择已下载的插件分发文件 (.nbm) 并打开。

选中打开的插件分发文件,并单击"安装"按钮,逐步完成插件安装程序。

图 2. 通过 .nbm 文件安装 VisualVM 插件

功能介绍

下面我们将介绍性能分析的几种常见方式以及如何使用 VisualVM 性能分析工具进行分析。

内存分析

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

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

图 3. 内存堆使用情况

图 4. 永久保留区域使用情况

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

图 5. 开启“在出现 OOME 时生成堆”功能

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

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

图 6. 内存分析结果

CPU 分析

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

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

图 7. CPU 使用情况

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

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

图 8. CPU 性能分析结果

线程分析

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

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

图 9. 活跃线程情况

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

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

图 10. 线程时间线视图

图 11. 线程表视图

我们在详细信息视图中不但可以查看所有线程、活动线程和结束的线程的详细数据,而且也可以查看某个线程的详细情况。

图 12. 线程详细视图

快照功能

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

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

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

图 13. Profiler 快照

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

图 14. 应用程序快照

转储功能

线程转储的生成与分析

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

图 15. 线程标签及线程转储功能

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

图 16. 线程转储结果

堆转储的生成与分析

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

图 17. 监视标签及堆转储功能

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

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

图 18. 堆转储的摘要视图

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

图 19. 堆转储的类视图

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

图 20. 选择查询实例数的类

图 21. 实例数视图

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

图 22. 堆转储的比较

图 23. 堆转储的比较结果

线程转储和堆转储均可以另存成文件,以便进行离线分析。

图 24. 转储文件的导出

总结

本文首先简要列举了一些性能分析相关的背景知识。然后介绍了 VisualVM 的下载和安装。最后从内存性能、CPU 性能、快照功能以及转储功能四个方面展开,进一步说明了如何使用 VisualVM 进行性能分析。通过本文的介绍,相信读者对性能分析会有一定的了解,并可以利用 VisualVM 进行性能分析。


    eclipse
    (145)eclipse
    MyEclipse是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。myeclipse分类:在结构上,MyEclipse的特征可以被分为7类:1.JavaEE模型2.WEB开发工具3.EJB开发工具4.应用程序服务器的连接器5.JavaEE项目部署服务6....更多>>
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推荐理由:python编辑器,代码补全、参数提示补全工具,这个工具其实非常重要,可以大大提高开发效率,减少出错。很满
    • wxFormBuilder3.5.1 官方最新版

      11-10 / 11.5M

      推荐理由:快速开发小软件时,使用wxFormBuilder来设计好界面,生成XRC文件,当然不想给别人看到xrc文件的内容也可以用工
    • Java SE Runtime Environment(JRE7

      02-12 / 45.2M

      推荐理由:Java2平台标准版(J2SE)软件是当今开发和发布急需的企业级应用的首选方案。Java平台标准版(也称为Java2平台
    • 安卓开发(Google Android SDK)r24.

      05-15 / 85.8M

      推荐理由:Google Android SDKAndroid是Google自己研发的手机平台操作系统,该平台基于开源软件Linux,由操作系统、中
    • Keil C51V9.00 uVision4破解版

      08-09 / 29.7M

      推荐理由:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结
    • Visual Studio 2010vs2010中文旗舰

      04-28 / 2.25G

      推荐理由:Microsoft Visual Studio 2010 专业版是一个集成环境,它简化了有关创建、调试和部署应用程序的基本任务。借
    jre下载
    (45)jre下载
    jre是java程序的运行环境,如果你想想编写java程序那就要装JDK,JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvironment)、Java工具和Java基础类库。java语言由于它的跨平台性,经常是编程语言排行榜的榜首,2013年8月份编程语言排行榜,本月变化较大的是Java与C位置互换,领衔称霸,份额略有上升。前三甲为Java、C、C++。当然,如果你只是想在PC上运行java程序,那么装上jre环境就OK了。Jar文件怎么运行?如果jar是完整...更多>>
    • Java Runtime Environment(JRE7)V7

      05-15 / 26.0M

      推荐理由:java 运行库 runtime environment 7,安装了它就可以运行java的程序了。Java语言恐怕是稳居网路应用程序语言
    • jdk7 64位7u80 官方正式版(Java SE

      08-19 / 139.3M

      推荐理由:JDK是一个开发环境,用于构建应用程序,applet程序,和使用Java编程语言的组成部分。Java Development Kit(
    • Java SE Runtime Environment 88.0

      04-19 / 58.9M

      推荐理由:Java语言恐怕是稳居网路应用程序语言的首选了,这都要归功于它高度的安全性以及跨平台的特性,几乎在目前所有
    • JDK 6(Java SE Development Kit)6u

      03-10 / 57.9M

      推荐理由:适用于您的计算机(windows)的 Java 软件,即 Java Runtime Environment,也称为 Java Runtime、运行时环境、
    • Java SE Development Kit (JDK7)7u

      08-19 / 137.5M

      推荐理由:JDK 7u51 发布,该版本修复了浏览器插件的严重的安全漏洞:CVE-2013-1493,Oracle 强烈建议使用 Java 浏览器
    • JRE(Java Runtime Environment)v6.

      05-15 / 13.8M

      推荐理由:JAVA运行必不可少的运行环境,你只要运行JAVA,必须安装JRE,目前还没有别的运行平台可以代替了,它包括Jav
    eclipse中文版下载
    (30)eclipse中文版下载
    Eclipse是一个开放源代码的、基于Java的可扩展开发平台。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。 汉化方法:把语言包中的features,plugins...更多>>
    JAVA软件
    (70)JAVA软件
    java软件下载,java编程软件下载专题有多款适合编程爱好者学习使用的软件,我们提供了适用于JAVA开发者使用的相关软件的各个版本跟新的下载地址,以方便各位爱好者使用学习。如果您有什么好的JAVA编程软件可以向我们提供分享下载,如果下载的软件有什么问题也可以向我们提供建议,祝程序员们学习愉快!java软件开发其实可以不用其他软件的。只需要安装了JDK工具包即可,这个是必须的。并且一定要配置好系统的环境变量。这个可以到网...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)