⑴VisualVM是一款可视化的监控分析工具,软件集成了多个JDK命令行工具,可以有效地对JAVA应用程序进行性能分析、优化以及调整等操作,拥有析线程信息、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析等多种功能,同时还拥有生成相应的分析监控报告。
⑵一、性能分析的主要方式
⑶、监控:监控是检查应用程序运行时行为的一般方法。多个视图分别实时显示CPU的使用状况、内存的使用状况、线程状态和其他有用的信息,以便用户能够立即发现问题的关键。
⑷、存储:性能分析工具从存储器中获取当前状态数据,存储到文件用于静态性能分析。Java程序通过在启动Java程序时添加适当的条件参数来触发转移操作。包括以下三种类型:
⑸、系统转移:JVM生成的当地系统转移,也称为核心转移。一般来说,系统的存储数据量很大,需要与平台相关的工具进行分析,如Windows上的windbg和Linux上的gdb。
⑹、Java转移:JVM内部生成的格式化数据包括线程信息、类别加载信息和堆积统计数据。通常也用于检测死锁。
⑺、堆积存储:JVM将所有对象的堆积内容存储在文件中。
⑻APP启动后,性能分析工具开始收集各种运行时的数据,其中有些数据直接显示在监视图中,而且大部分数据保存在内部,直到用户要求取得快照,才显示出基于这些保存的数据的统计信息。快照包含APP在一段时间内的执行信息,通常有CPU快照和内存快照两种。
⑼CPU快照:主要包括应用程序函数的调用关系和运行时间,这些信息通常可以在CPU快照视图中查看。
⑽内存快照:主要包括内存的分配和使用情况、装载的所有类别、存在的对象信息和对象之间的引用关系等。这些信息通常可以在内存快照视图中查看。
⑾性能分析通过收集程序运行时的执行数据,帮助开发人员优化程序所需的部分,提高程序的运行速度和存储器的使用效率,主要有以下三个方面
⑿CPU性能分析:CPU性能分析的主要目的是统计函数的调用状况和执行时间,或者更简单的情况是统计应用程序的CPU使用状况。通常有CPU监控和CPU快照两种方式来显示CPU性能分析结果。
⒀存储性能分析:存储性能分析的主要目的是通过统计存储使用情况来检测可能存在的存储泄漏问题,并确定优化存储使用的方向。通常有内存监控和内存快照两种方式来显示内存性能分析结果。
⒁线程性能分析:线程性能分析主要用于在多线程应用程序中确定存储器的问题。一般包括线程状态的变化状况、死锁状况和某线程在线程生命期内状态的分布状况等。
⒂VisualVM可以通过检测JVM中加载的类别和对象信息等来分析存储器的使用情况,通过VisualVM的监视标签和Profiler标签可以对应用程序进行存储器分析。
⒃、中央处理器分析
⒄VisualVM可以监控应用程序在一段时间内的CPU使用情况,显示CPU的使用率、方法的执行效率和频率等相关数据,有助于发现应用程序的性能瓶颈。我们可以通过VisualVM的监控标签和Profiler标签对应用程序进行CPU性能分析。
⒅Java语言可以很好地实现多线程应用。当我们调整或开发多线程应用程序后期进行性能调整时,我们通常需要了解当前程序中所有线程的运行状态,以及是否有死锁、热锁等情况,从而分析系统可能存在的问题。
⒆我们可以使用VisualVM的快照功能,生成任何性能分析快照,保存在当地,帮助我们进行性能分析。快照为抓取APP性能分析数据提供了一个非常便捷的方式,因为快照一旦生成,就可以随时离线打开查看,也可以相互传播。
⒇VisualVM提供了两种快照
⒈专业快照:当一个性能分析对话(内存或CPU正在进行时,我们可以通过性能分析结果工具栏的快照按钮生成专业快照来捕捉当时的性能分析数据。
⒉应用快照:右键点击左侧应用程序窗口的应用程序节点,选择应用程序快照生成应用程序快照。应用快照在收集某个时刻的堆积转移、线程转移和Profiler快照的同时,也捕获JVM的基本信息。
⒊线程转移存储的生成与分析:VisualVM可以生成线程转移存储在运行中的本地应用程序,印刷活动线程的堆栈痕迹,有效理解线程的运行状况,诊断死锁、应用程序瘫痪等问题。
⒋堆积转移存储的生成和分析:VisualVM可以生成堆积转移存储,统计某个特定时刻JVM中的对象信息,分析对象的引用关系、内存是否泄漏等。
⒌VisualVM 是一个性能分析工具,自从 JDK Update 以后已经作为 Oracle JDK 的一部分,位于 JDK 根目录的 bin 文件夹下。VisualVM 自身要在 JDK 以上的版本上运行,但是它能够监控 JDK. 以上版本的应用程序。下面主要介绍如何安装 VisualVM 以及各种 VisualVM 上的插件。
⒍一、安装VisualVM
⒎、将 VisualVM 安装程序解压缩到本地系统。
⒏、导航至 VisualVM 安装目录的 bin 目录,然后启动 jvisualvm.exe。
⒐二、安装 VisualVM 上的插件
⒑VisualVM 插件中心提供很多插件以供安装向 VisualVM 添加功能。可以通过 VisualVM 应用程序安装,或者从 VisualVM 插件中心手动下载插件,然后离线安装。另外,用户还可以通过下载插件分发文件 (.nbm 文件 安装第三方插件为 VisualVM 添加功能。
⒒、VisualVM 插件中心安装插件安装步骤 :
⒓从主菜单中选择“工具”》“插件”。
⒔在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
⒕逐步完成插件安装程序。
⒖、从主菜单中选择“工具”》“插件”。
⒗在“已下载”标签中,点击“添加插件”按钮,选择已下载的插件分发文件 (.nbm 并打开。
⒘选中打开的插件分发文件,并单击“安装”按钮,逐步完成插件安装程序。