VisualVM一款免费集成了多个JDK命令行可视化工具

本文主要介绍如何使用 VisualVM 进行性能分析及调优。

开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个">系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。

VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。同时,它能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度。

本文将对 VisualVM 的主要功能逐一介绍并探讨如何利用获得的数据进行性能分析及调优。

背景知识

性能分析的主要方式

监视:监视是一种用来查看应用程序运行时行为的一般方法。通常会有多个视图(View)分别实时地显示 CPU 使用情况、内存使用情况、线程状态以及其他一些有用的信息,以便用户能很快地发现问题的关键所在。 转储:性能分析工具从内存中获得当前状态数据并存储到文件用于静态的性能分析。Java 程序是通过在启动 Java 程序时添加适当的条件参数来触发转储操作的。它包括以下三种: 系统转储:JVM 生成的本地系统的转储,又称作核心转储。一般的,系统转储数据量大,需要平台相关的工具去分析,如 Windows 上的 windbg 和 Linux 上的 gdb。 Java 转储:JVM 内部生成的格式化后的数据,包括线程信息,类的加载信息以及堆的统计数据。通常也用于检测死锁。 堆转储:JVM 将所有对象的堆内容存储到文件。 快照:应用程序启动后,性能分析工具开始收集各种运行时数据,其中一些数据直接显示在监视视图中,而另外大部分数据被保存在内部,直到用户要求
获取快照,基于这些保存的数据的统计信息才被显示出来。快照包含了应用程序在一段时间内的执行信息,通常有 CPU 快照和内存快照两种类型。 CPU 快照:主要包含了应用程序中函数的调用关系及运行时间,这些信息通常可以在 CPU 快照视图中进行查看。 内存快照:主要包含了内存的分配和使用情况、载入的所有类、存在的对象信息及对象间的引用关系等。这些信息通常可以在内存快照视图中进行查看。 性能分析:性能分析是通过收集程序运行时的执行数据来帮助开发人员定位程序需要被优化的部分,从而提高程序的运行速度或是内存使用效率,主要有以下三个方面: CPU 性能分析:CPU 性能分析的主要目的是统计函数的调用情况及执行时间,或者更简单的情况就是统计应用程序的 CPU 使用情况。通常有 CPU 监视和 CPU 快照两种方式来显示 CPU 性能分析结果。 内存性能分析:内存性能分析的主要目的是通过统计内存使用情况检测可能存在的内存泄露问题及确定优化内存使用的方向。通常有内存监视和内存快照两种方式来显示内存性能分析结果。 线程性能分析:线程性能分析主要用于在多线程应用程序中确定内存的问题所在。一般包括线程的状态变化情况,死锁情况和某个线程在线程生命期内状态的分布情况等

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。

时间: 2024-10-01 10:01:46

VisualVM一款免费集成了多个JDK命令行可视化工具的相关文章

集成命令提示符、“多才多艺”的命令行文件管理器 - CLEX

作为一名系统管理员亦或是一名普通的命令行用户,在文件管理器和命令行之间频繁切换是否时常令你感到沮丧.总有一天,你会倾向于使用一些命令行来代替你所用的图形文件管理器. 也许,偶尔你会找到一款不错的命令行管理器,但即使如此,你仍然需要在你的文件管理器和命令行窗口之间来回切换.所以,这个问题并没有真正解决.那么,是否有一款文件管理器能将文件浏览和命令提示符集成在同一个窗口里呢?答案是肯定的,它就是 CLEX . clex-main CLEX - 命令行文件管理器 CLEX是一款基于命令行的文件管理器,

数据资料“保险箱” 10款免费备份文件软件推荐

中介交易 SEO诊断 淘宝客 云主机 技术大厅 备份文件(Backup File),即是拷贝到存储介质上的文件,可以帮助用户保护数据,以防其在系统硬件或存储介质出现故障时受到破坏. 众所周知,对企业而言,经常对电脑里存储的资料.数据进行备份是一项不可或缺的步骤,其重要性不言而喻.于个人而言,对文件备份,亦是获益良多.而备份文件软件的出现,能使用户不必每次都辛苦地逐个目录拷贝.整理目录及文件.更节省了重装系统后繁复的系统设置调整步骤.备份文件软件,实是每个电脑用户必备的工具.因此,IDC评述网根据

Polycode:免费、开源的跨平台(游戏和APP)开发工具

Polycode:免费.开源的跨平台(游戏和APP)开发工具 发表于2013-03-27 08:53| 次阅读| 来源 C++SDN| 0 条评论| 作者张红月 开源PloycodeMoaiC++http://www.aliyun.com/zixun/aggregation/13484.html">Cocos2d-xUnity 3D游戏引擎 摘要:Polycode是 一款免费.开源的跨平台开发工具, 遵循MIT协议,代码托管在GitHub上.其API的设计理念是"用更少的代码做更

Java 程序员最喜欢的 11 款免费 IDE 编辑器

Java开发人员需要花费大量的时间埋头于Java代码中,使用各种不同的IDE(Intergrated Development Environment)来开发Java代码,所以下面我将为大家介绍11个不同的IDE,这些IDE提供了多种功能,如:构建Java应用.TestNG.调试.代码检查.代码帮助.JUNIT测试.多元重构.可视化GUI构建器和代码编辑器.Java和Maven构建工具.ant.数据建模和构建查询,等等. 1.NetBeans NetBeans是一款用Java编写的开源IDE,是I

10 款免费的 Mac 屏幕录制工具

有些教程使用文字和图像是远远不够的,需要一些简单的视频实例说明.当我们不需要非常强大的功能的时候,免费的 Mac 屏幕录制工具就能发挥它的作用,给我们带来便利. 这里我们介绍 10 款免费的 Mac 屏幕录制工具.这些工具肯定能给大家带来一定的便利,而且能满足大家一些基础的录制要求,同时也会有一部分的限制,比如水印和录制时长.但是这足以帮助大 家录制高质量的视频,如果有什么使用心得,或者有其他更好的屏幕录制工具可以在评论跟大家分享哦:) Screen Recorder Robot Lite 这是

.NET开发者必备的11款免费工具

原文:.NET开发者必备的11款免费工具 如今,HTML5,jQuery,JavaScript等等这些热门技术,受到了开发者们的强烈追捧,有了这些开发工具也为开发者们减轻了许多负担.本文为开发者介绍了11款.NET框架,这些框架有很多优点,比如提供用户界面,数据访问,数据库连接,Web应用开发,加密,数值算法算法,网络通信,以及一些其它的服务.这些工具都是开源的,有的开发工具你既可以从网上下载可执行文件,也可以下载源代码:还有一些工具拥有可扩展的框架,是一个持续集成工具. 今天我们要介绍一些最适

群英将推国内首款免费高品质在线客服系统

中介交易 SEO诊断 淘宝客 云主机 技术大厅 随着电子商务的发展成熟,企业开展网络营销的思路也正逐渐清晰.利用互联网层出不穷的营销手段,在提升网站访问流量之余,变流量为销量才是网络营销成功的关键.针对网络营销是以消费者为主导.具有双向交互性的特点,在线客服对于企业开展网络营销的作用日益凸显. 作为基础级应用软件,在线客服已经深入到网络营销的各个环节.日渐精细化的营销业务要求企业在售前服务.访客咨询.轨迹跟踪.效果评估.售后服务.访客关系维护等环节都有高效精准的工作质量,这意味着,企业对在线客服

12款免费云存储服务:谁家最价廉物美

今天的市面上已经出现了大量的公有云存储服务,很多服务需要客户注册.而作为注册的回报,很多厂商还会提供免费的云存储容量. 使用本文所列出的12款公有云存储服务,从理论上说你就能获得112GB的免费云存储容量.但是并非所有服务都是一样的.每种服务都各有其优缺点,例如能够上传的文件有多大?扩展云存储空间需要花多少钱?能和哪些操作系统以及移动应用集成?当然,还要考虑每种服务的安全性. 下面逐一列出12款免费云存储服务的各种参数,以供用户对比选择. 名称:亚马逊云盘(Cloud Drive) 免费云存储:

6 款免费的图标编辑器分享

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Web 设计中常用到图标,比如 Favicon,Windows 和 Mac 程序中也要用到图标,设计图标当然可以使用庞大的 Photoshop 或 Paint.NET,但也有一些免费的,简单工具可以随手拿来用,本文搜集了6款免费的图标编辑工具,有一些工具还可以从二进制文件中抽取图标. Greenfish Icon Editor Pro Greenfish Icon Editor Pro 是一款强大的图标编辑器,但非常小巧,解压后不到1.8MB.它支