`
306963591
  • 浏览: 73407 次
  • 性别: Icon_minigender_1
  • 来自: 安徽省
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下的性能问题。理论上,增加对应用程序的负载会使性能有所下降,但是我认为性能下降的比率远远高于负载的增加,同时我也发现,性能可以通过改变应用程序的逻辑来提升。为了更详细地了解这一点,我们需要做一些性能分析,这时,我们自然就要用到一些性能分析工具。Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?

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

  1. 必须包括对应用程序的类、方法及时间的监测
  2. 必须包括对内存的监测
  3. 必须具有易用性

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

参考工具:

1.VisualVM

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

2.JProfiler

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

3.YourKit

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

4.JProbe

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

5.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插件。希望本文能帮助你做出正确的选择。

来自:chinaitlab

分享到:
评论

相关推荐

    Java几款性能分析工具

    本文将详细介绍几款主流的Java性能分析工具,并进行对比分析,帮助开发者选择最适合自己的工具。 #### 1. VisualVM VisualVM是一款开源的工具,自JDK 6 Update 7起被默认包含在内。它能够提供CPU的使用情况、内存...

    GCLogViewer(java性能分析工具)

    总的来说,GCLogViewer是一款强大的Java性能分析工具,尤其在处理GC日志方面表现出色。通过其图形化的界面和详尽的数据分析,开发者可以深入理解应用程序的内存行为,从而做出有针对性的优化决策。无论你是经验丰富...

    MAT Eclipse MemoryAnalyzer java性能分析

    MAT,全称Memory Analyzer Tool,是由Eclipse基金会开发的一款强大的Java内存分析工具。它主要用于诊断Java应用程序中的内存泄漏和理解对象内存占用情况,是Java性能优化的重要助手。在这个"MAT Eclipse Memory...

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    java内存,性能分析工具Optimizeit Profiler介绍(类似MAT,JConsole等)

    总的来说,Java性能优化是一个系统性的工程,涉及到代码优化、JVM调优以及使用像Optimizeit Profiler这样的专业工具。通过深入理解这些工具,开发者能够有效地提升应用的运行效率,降低资源消耗,为用户提供更优质的...

    Java性能分析工具.pdf

    Java性能分析工具是Java开发过程中不可或缺的利器,它们帮助开发者深入了解应用程序的运行状态,找出性能瓶颈,从而进行有效的优化。本文将围绕Java性能分析工具展开,介绍其工作原理、采样分析器和探查分析器的特点...

    java文件对比工具

    Java文件对比工具是一种用于比较两个或多个文件之间差异的实用程序,特别适用于编程环境中检查代码间的相似性或差异。在Java开发中,这样的工具能够帮助开发者有效地定位代码修改的地方,协同工作时解决合并冲突,...

    java线程分析工具TDA

    TDA(Thread Dump Analyzer)是一款强大的Java线程分析工具,它能够帮助开发者深入理解应用在运行时的线程状态,包括线程的阻塞情况、等待资源、死锁等问题。下面将详细介绍TDA的使用方法、功能以及它如何帮助我们...

    java 内存溢出分析工具 HeapAnalyzer

    三、与其他工具对比 虽然HeapAnalyzer功能强大,但也有其他工具如MAT (Eclipse Memory Analyzer Tool) 和VisualVM等可供选择。MAT提供了更丰富的视图和分析功能,而VisualVM则集成了多种监控和分析工具,包括CPU、...

    java内存泄漏分析工具

    除此之外,JProfiler是一款商业的Java性能分析工具,它提供了详细的内存分配和垃圾收集统计,可以帮助开发者识别内存泄漏的模式。其独特的"内存快照"功能可以比较不同时间点的内存状态,从而找出新增的、未释放的...

    Mac OS java内存分析工具MAT

    MAT是Eclipse项目的一部分,它是一款免费且开源的工具,专门用于分析Java堆转储(Heap Dump)文件,帮助开发者识别内存泄漏、分析内存占用情况以及优化内存使用。MAT提供了丰富的功能和视图,使得复杂的内存问题变得...

    Java性能监控工具Jprofiler4.3.2

    Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...

    java IBM 分析工具(线程、gc、内存)

    IBM提供了几个强大的分析工具,专注于线程、垃圾收集(GC)和内存管理,以帮助开发者更好地理解和解决问题。这些工具包括IBM Thread and Monitor Dump Analyzer for Java、HeapAnalyzer以及可能的GA441(可能是另一...

    4 种主流 Java 静态代码分析工具

    Java作为一种广泛使用的编程语言,拥有丰富的静态代码分析工具,其中Checkstyle、FindBugs、PMD和Jtest是最为知名的几种。本文将详细介绍这四种工具的特点及其应用场景。 #### 二、静态代码分析工具综述 ##### 1. ...

    IBM内存分析工具(java)

    IBM内存分析工具(IBM Memory Analyzer,简称MAT)是一款强大的、免费的诊断工具,适用于所有Java虚拟机(JVM)。它能够提供详细的内存分配和引用路径信息,帮助开发者深入理解内存消耗情况,找出可能导致内存问题...

    jprofiler java开发软件性能测试工具

    Java开发过程中,性能优化是至关重要的一步,而`jProfiler`正是这样一个强大的工具,专为Java开发者设计,用于深入分析应用程序的性能。标题中的“jprofiler java开发软件性能测试工具”表明,jProfiler是一个针对...

    jProfiler7 java内存分析 linux版本

    jProfiler7是一款强大的Java性能分析工具,尤其在内存分析方面表现出色。它专为开发者设计,帮助他们在Linux环境中深入理解并优化Java应用程序的内存使用情况。本篇文章将详细探讨jProfiler7在Java内存分析上的核心...

    jProfiler11 java性能分析利器

    jProfiler是一款功能强大的Java性能分析工具,尤其体现在其最新版本jProfiler11上。这款工具专为Java EE和Java SE应用程序开发者设计,提供了全方位的性能监控与优化功能,帮助开发者在开发过程中及时发现并解决性能...

    实用小工具:Java实体类对比、Json对比、字符串动态拼接等功能

    标题中的“实用小工具:Java实体类对比、Json对比、字符串动态拼接等功能”涉及到的是在软件开发过程中常用的几个技术点,主要集中在Java后端和前端Vue.js的应用上。这里我们将详细探讨这些知识点: 1. **Java实体...

    java内存分析工具介绍

    3. **JProfiler**:这是一款功能全面的商业Java性能分析工具,具有实时内存分析、CPU Profiling、线程分析等功能。其内存分析部分能识别出未释放的对象和内存碎片,提供详细的内存分配历史,便于找出问题根源。 4. ...

Global site tag (gtag.js) - Google Analytics