5款Java性能分析工具的对比

转载 2012年03月30日 23:15:10

这是转帖的。

原帖地址:http://blog.jobbole.com/16372/


在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能分析,自然也要用到一些分析工具。

Java 有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?

为了做出正确的选择,我列出性能分析应满足一些最低要求:

● 必须包括对应用程序的类、方法及时间的监测

● 必须包括对内存的监测

● 必须具有易用性

我配置了一个使用 RESTful 接口的 Spring 应用程序,使用 MongoDB 作为数据存储,还使用 Solr 搜索,并在 Tomcat 服务器上部署。

参考工具:

VisualVM

VisualVM 是一个资源分析工具,一直从 JDK 6 更新到7。它默认内存和 CPU 的监视。它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。

JProfiler

JProfiler 很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。我不得不选择使用 JPofiler 应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会提供了几个选项。它可以记录内存的使用和 CPU 的使用率。在查看 CPU 的使用率同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们可以将 IntelliJ 插件安装到 IDE 上,那么运行 JProfiler 会更加便利。比如,可以直接帮我启动 Tomcat。

YourKit

YourKit 是我在另一个项目中偶然发现的一款性能分析工具。它的安装很简单。安装时有一个选项,可以安装一个插件到我的 IDE。安装后,运行应用程序,使用该插件,它会自动连接到 YourKit。它有一个漂亮的用户界面可以查看到内存和 CPU 的监测,同时也可以看到请求的执行路径。

JProbe

我刚开始创建 JProbe 时遇到点困难。安装并不是直接完成,我需要对它进行配置。它采用了类似 JProfiler 一样的设置。它会在你的 Tomcat 目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。

Spring Insight

听到 TC Server 有 Spring Insight 监控界面,于是我兴奋地尝试了一下。安装完成后,并设置成 TC Server 的开发者版,然后部署应用程序在 TC Server 上。我查看 Insight 界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的应用程序是基于 Spring 的,Spring Insight 能够提供非常有用的数据。TC Server 插件在 IDE 上的配置与 Tomcat 的配置类似。SpringSource 工具套件就自带 Spring Insight。

结论

看到这五款性能分析工具,我可以肯定地说,它们都非常不错。如果你有基于 Spring 的应用程序,那么选择 Spring Insight 显然是最佳的。它一直是免费的,但你需要部署你的应用在 TC Server 上。

如果你想监听本地和远程的进程,我会选择 JProfiler 或 YourKit。这两个也可以帮助 Spring Insight 来监测、找到性能瓶颈。

JProfiler 和 YourKit 已经能满足我的上述要求。JProfiler、YourKit 和 Spring Insight 都可以跟踪应用程序的类和方法的流向。JProfiler 和 YourKit 可以显示内存使用情况。虽然 Spring Insight 不可以显示内存使用情况,但它可以很好的显示吞吐量的趋势。这三款性能分析工具功能很清楚,不混乱,而且容易使用。最后,他们都有自己的 IDE 插件。希望本文能帮助你做出正确的选择。


相关文章推荐

推荐5款超实用的.NET性能分析工具

.Net工具dotTraceANTSJustTrace 摘要:作者把平时工作中使用到的非常不错的.Net分析工具进行总结,在此分享给大家。希望它们能帮助到你! 虽然.NET框架号称永远不...

【JAVA教程分享】可提高Java开发性能的5款调试工具-潭州JAVA

Java是一种非常强大的编程语言,一直备受欢迎。作为现今十分流行的移动平台——Android的核心语言,它大大促进了移动通信行业的发展。因此可以肯定,随着Android平台的不断扩张,Java开发人员...

java开发5款很好的工具

作者在IDR解决方案中,一直寻找方法来编写出更好的代码,后来他们发现,通过使用一些工具使用好的工具不仅可以提高代码质量,还可以提高开发人员的工作效率。在本文,作者将介绍5款在IDR解决方案的(开发语言...

可提高Java调试功能的5款工具

可提高Java调试功能的5款工具

5款Java错误跟踪工具

随着Java生态系统的发展,用户性能需求的提高,一类新的开发工具应运而生。与传统方法相比,它们既可以满足在一个快节奏的环境中快速部署所需要的错误跟踪需求,又能在一个更深的层面上观察应用程序的行为。近日...

5款工具助你写出更好的Java代码

作者在IDR解决方案中,一直寻找方法来编写出更好的代码,后来他们发现,通过使用一些工具使用好的工具不仅可以提高代码质量,还可以提高开发人员的工作效率。在本文,作者将介绍5款在IDR解决方案的(开发语言...

5款工具助你写出更好的Java代码

  • 2013年10月30日 10:28
  • 84KB
  • 下载

5款java反编译工具

  • 2010年08月04日 11:46
  • 8.29MB
  • 下载

Java开发者值得关注的5款新工具

1. JClarity ——性能监控 JClarity目前提供两款有关Java性能的工具:Illuminate和Censum,Illuminate是一款性能监控工具,而Censum是一款专注于...
  • liqqc
  • liqqc
  • 2014年12月23日 08:10
  • 193

Linux与Java性能跟踪与分析工具.ppt

  • 2015年09月01日 16:06
  • 1.08MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5款Java性能分析工具的对比
举报原因:
原因补充:

(最多只允许输入30个字)