洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer - 编程入门网
洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer时间:2011-10-16 IBM 陈沁悦使用 VPA 快速定位 Java 应用性能瓶颈 简介:大型 Java 应用调用了大量的类和方法,如何在这成千上万行的代码中找到应用的性能瓶颈呢 ?在本文中,作者将介绍如何为不同的性能问题选择性能分析工具,对性能问题采样以及使用 Visual Performance Analyzer 分析性能采样结果并快速定位性能瓶颈。 引言 类是 Java 的基础。大规模的 Java 应用是由成千上万个类构成的。当出现性能问题时,如何才能在 这一大堆类中迅速定位性能瓶颈呢?更糟糕的是,有些类是由某个同事在上个世纪编写的,某些类是第三 方提供的,没有人明白这些类给整个应用带来了怎样的性能影响。 关于 VPA VPA(Visual Performance Analyzer)是基于 Eclipse 开发的可视化性能分析工具集。 VPA 为性能分析提供了六件武器:Profile Analyzer、Code Analyzer、 Pipeline Analyzer、 Counter Analyzer、 Trace Analyzer、 Call Tree Analyzer。每个工具可以用于分析一种特定类别的性 能数据。 如果您想进一步了解 VPA,您可以参考 VPA 用户指南。 VPA 中的两个工具:Profile Analyzer 和 CallTree Analyzer,对 Java 应用程序的性能分析提供了 有力的支持。这两个工具提供了多个视图,帮助用户从不同的角度分析性能数据。通过这两个工具帮助, 用户可以快速地从这成千上万行的代码中找到性能最差的方法或者代码行。 使用 VPA 分析性能问题的过程可以分为三步: 针对不同性能问题,选择恰当的性能分析工具; 采集性能数据; 使用 VPA 分析性能数据; 本文将以小程序 bookstore 为例,介绍如何使用这两个工具快速定位性能问题。 洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer(2)时间:2011-10-16 IBM 陈沁悦小程序 bookstore bookstore 是个基于 AWT 的图形界面程序。它读取图书索引文件到内存中,然后列出文件中包含的所 有图书分类。如果用户在分类列表中选中某个图书分类,图书列表中会列出所有该分类下的图书。图 1 是小程序 bookstore 图形界面的截图。 图 1. bookstore 小程序 bookstore 小程序有两点性能问题: 打开比较大的图书索引文件需要比较长的等待时间。 如果用户选中一个分类,bookstore 小程序会很长时间不响应,并且 100% 地占用 CPU 资源。 选择恰当的性能分析工具 Java 应用的性能问题多种多样,有 IO 方面的,也有处理器资源方面的。针对不同的性能问题,性能 分析师需要使用不同的采样手段和分析工具。VPA 中有两个工具可以用于分析 Java 应用的性能问题: Profile Analyzer 和 Call Tree Analyzer。它们适用于不同的性能问题。 Call Tree Analyzer 可以帮助用户找到耗时最长的方法以及该方法的所有调用堆栈,对所有与速度相 关的性能问题都适用。 Profile Analyzer 则对于那些和处理器资源密切相关的性能问题(比如 CPU 利用率 100%)有比较强 的针对性。 Profile Analyzer Profile Analyzer 被用于分析抽样数据。抽样采样时,系统每隔一定周期,采样一次,采集当前正在 运行的指令的地址、线程号和进程号。根据被抽样到的概率不同,可以知道哪些进程、线程、指令消耗了 最多的处理器资源。除此之外 , 抽样采样给应用造成的额外开销比较小。Profile Analyzer 为抽样采样 数据的分析提供了一系列的文字或者图形的视图。通过这些视图,分析师可以将性能瓶颈定位到进程、线 程、类、方法甚至具体的代码。 小程序 booksotre 的第二个性能问题是 CPU 资源相关的性能问题,通过 Profile Analyzer 可以迅 速找到占用处理器资源最多的代码。 Call Tree Analyzer Call Tree Analyzer 被用于分析方法调用追踪数据。方法调用 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |