1.VisualVM
VisualVM是一个资源分析工具,一直从JDK 6更新到7,它默认内存和CPU的监视,它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。
2.JProfiler
JProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程 序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会提供几个选项, 它可以记录内存的使用和CPU的使用率。在查看CPU使用率的同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们可以将 IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。比如,可以直接帮我启动Tomcat。
4.JProbe
我刚开始创建JProbe时遇到点困难。安装并不是直接完成,我需要对它进行配置。它 采用了类似JProfiler一样的设置。它会在你的Tomcat目录中生成启动脚本,可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其 中可以看到内存的使用,但无法在进程中找到执行路径。
JProbe提供了三种类型的分析:
- 内存分析,使开发人员可以发现和解决Java内存泄露和对象循环,以确保最佳的方案效率和稳定性。
- 性能分析,使开发人员可以识别和解决Java的瓶颈,死锁,以确保最佳的性能和可扩展性方案。
- l覆盖分析,使开发人员在单元测试,以确定关联代码执行的线路,以确保测试范围和程序的正确性。
-
JProbe还提供一个Eclipse插件,提供了在Eclipse Java IDE内智能代码性能分析和解决问题。
JProbe让您可以:
- 实现一个可靠的,系统的工作流程,全面验证并提供优化的代码
- 轻松跟踪性能增强的代码变化,从生成到生成的质量的提高
- 利用自动性能分析和度量报告,确保及时审查和修正
- 在生成过程中诊断问题通过调优提高生产力问题
- 避免不必要的,昂贵的添置硬件来解决性能问题
- 通过Eclipse插件鼓励自动化内存测试和代码优化最佳实践
- 启用JProbe跨应用程序生命周期开发和整合阶段主动的性能管理,作为Quest Java技术和门户应用管理的一部分,为企业预生产开发团队提供深层次的性能,内存和覆盖分析能力。通过一个统一,直观的控制台,JProbe提供了三种强大的分析工具:
JProbe Memory - 内存分析工具可以帮助您快速找出和诊断内存泄漏和过剩垃圾收集的根本原因。它可以帮助您快速找到并修复低效的代码,创建游离对象(挥之不去的引用)和导致内存不足系统崩溃和较低性能的对象循环。
JProbe Performance - 性能分析工具可以帮助你快速找出和诊断代码瓶颈和线程竞争背后的根本原因。它可以帮助您快速找到产生瓶颈,死锁,陷入僵局的线程,并修复低效的代码,从而避免导致整体性能缓慢和可扩展性瘫痪。
JProbe Coverage - 覆盖分析工具通过精确测量的陈述和已经行使条件可以帮助您找到在开发早期未经测试的应用程序代码,从而更容易评估测试运行的可靠性和准确性。
自动化
JProbe允许在夜间构建过程分析内存,性能和覆盖。 JProbe利用ANT(或Maven)构建任务,JUnit测试脚本和一个称为触发器的独特功能来实现自动化分析。触发器是JProbe自动化的基石,处理更精细的既简单又复杂的自动化活动。通过启用触发器,您免去了应用程序代码生成过程中插入额外的控制代码进行运行测试,它可以帮助您节省宝贵的时间和预留预算分析。
3.YourKit
YourKit是我在另一个项目中偶然发现的一款性能分析工具,它的安装很简单。安装 时有一个选项,可以安装一个插件到我的IDE。安装后,运行应用程序,使用该插件,它会自动连接到YourKit。它有一个漂亮的用户界面可以查看到内存 和CPU的监测,同时也可以看到请求的执行路径。
5.Spring Insight
听到TC Server有Spring Insight监控界面,于是我兴奋地尝试了一下。安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的 应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。SpringSource工具套件就自带Spring Insight。
6.jconsole
方便不用下载安装,在JDK的bin目录下就有,如图。
7.JMeterJMeter
可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。 JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可 以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
8.JRockit Mission Control
JRockit Runtime Analyzer(JRA)是一个JVM分析器,是一个随需应变的“动态记录器”。它记录了Java应用程序和JVM在一段预定的时间内的详细记录。然后通过JRA应用程序对记录下来的文件进行离线分析。所记录的数据包括对方法的调用跟踪、错误的同步、锁定的分析,还有垃圾收集统计信息,优化决策以及对象统计信息和其他重要的应用程序/JVM行为。它的目的是让JRockit开发人员能够找到良好的方法来基于现实应用程序优化JVM,对于帮助客户在生产和开发环境中解决问题十分有用。
Nursery大小
|
20M(默认值)
|
100M
|
GC暂停时间
|
42.5s
|
15.3s
|
垃圾收集的总数
|
365
|
296
|
平均暂停时间
|
116ms
|
52ms
|
|
JDBC connection size 20 w/ default nursery
|
JDBC connection size 100 w/ 100M nursery
|
Increase %
|
操作A
|
22.125
|
12.079
|
83%
|
操作B
|
35.195
|
21.773
|
62%
|
总结:
看到这七款性能分析工具,我可以肯定地说,它们都非常不错。如果你有基于Spring的应用程序,那么选择Spring Insight显然是最佳的。它一直是免费的,但你需要部署你的应用在TC Server上。
如果你想监听本地和远程的进程,我会选择JProfiler或YourKit.这两个也可以帮助Spring Insight来监测、找到性能瓶颈。
JProfiler和YourKit已经能满足我的上述要求。JProfiler、 YourKit和Spring Insight都可以跟踪应用程序的类和方法的流向。JProfiler和YourKit可以显示内存使用情况。虽然Spring Insight不可以显示内存使用情况,但它可以很好的显示吞吐量的趋势。这三款性能分析工具功能很清楚,不混乱,而且容易使用。最后,他们都有自己的 IDE插件。
相关推荐
JavaCore分析工具是一种在Java应用程序出现问题时,...总之,JavaCore分析工具是Java开发和运维过程中不可或缺的诊断工具,它能够帮助开发者深入理解JVM内部工作原理,有效地解决性能问题,保障Web应用程序的稳定运行。
- **分析heapdump**:接着,使用heapdump分析工具查找内存占用大的对象,分析其生命周期,找出可能导致内存泄漏的嫌疑对象。 - **排查与修复**:定位到问题后,分析代码逻辑,找出导致问题的原因,如无用对象未被...
1. **任务管理器**:这是Windows操作系统内置的性能分析工具,可以查看CPU、内存、硬盘和网络等资源的实时使用情况,还能用于进程管理和结束不必要的进程。 2. **top和htop**:在Linux系统中,top命令提供了一个...
JAVA性能测试工具是IT行业中用于评估和优化JAVA应用程序性能的关键组件。这些工具旨在模拟真实世界的负载情况,帮助开发者识别和解决性能瓶颈,确保应用程序在高负载下仍能保持稳定和高效运行。以下是对几种主要JAVA...
在Java中,日志分析工具可能使用了诸如`java.util.logging`、`log4j`、`slf4j`或`logback`等流行的日志框架。这些框架提供了记录、控制和格式化日志的能力,使得开发者能够方便地跟踪和理解程序行为。 描述中提到的...
以下是针对“性能分析工具.rar”中提到的三个工具的详细介绍: 1. **gc-analyzer** `gc-analyzer` 是一个专门用于分析Java垃圾收集(Garbage Collection, GC)行为的工具。GC是JVM中非常重要的一部分,负责管理...
IBM为WebSphere Application Server (WAS) 提供了一款名为"jca467.jar"的线程堆栈分析工具,专门用于处理与IBM Java相关的线程分析任务。 首先,我们来了解一下什么是线程堆栈。线程堆栈是每个线程在执行过程中创建...
Java性能分析工具,如JProfiler,是开发人员和系统管理员在优化Java应用程序时的重要武器。JProfiler是一款功能强大的Java性能剖析器,它提供了对内存、CPU、线程、类加载器、Garbage Collection(GC)等多种性能...
IBM WebSphere JavaCore分析工具是针对IBM WebSphere应用服务器中出现的问题进行诊断的重要工具。JavaCore文件是由IBM WebSphere生成的一种日志文件,它记录了JVM(Java虚拟机)在遇到严重错误或异常时的堆栈跟踪和...
- **Android Studio Profiler**:集成了内存、CPU、网络和UI性能的实时分析,是目前最常用的Android性能分析工具,与IDE紧密结合,使用方便。 - **Firebase Performance Monitoring**:Google提供的云服务,可收集...
Optimizeit Profiler虽然强大,但需要注意的是,性能分析工具的使用必须谨慎,因为过多的监控可能会对应用本身造成额外负担,影响实际性能。因此,合理地选择分析时机和级别至关重要。 在《性能测试工具OptimizeIt...
JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...
JProfiler是一款强大的Java性能分析工具,专为J2SE和J2EE应用程序设计。它集CPU、线程和内存分析于一体,提供了一套全面的解决方案来检测和优化Java应用的性能问题。JProfiler的使用对于理解和提升Java服务器的性能...
1. 使用分析工具打开HeapDump文件,查看总体内存占用情况,识别占用内存最多的类和实例。 2. 分析大对象,检查是否有内存泄漏的迹象,如长生命周期的临时对象或者不再使用的对象占用大量内存。 3. 查看类加载器信息...
Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...
Java CPU性能分析工具代码实例是用于诊断和解决Java应用程序中的CPU性能问题的工具。该工具通过示例代码详细介绍了如何使用jstack命令来定位CPU飙升问题的根源,并提供了一个脚本文件来自动化该过程。 工具的主要...
下面介绍几种常用的Java性能分析工具。 3.2. 工具分类介绍 3.2.1. HttpWatch:主要用于HTTP性能分析,可以监控网页加载时间和各个部分的详细耗时,帮助优化前端性能。 3.2.2. ThreadDump:用于生成Java线程快照,...
本篇文章将详细讲解如何使用`javacore`和`heapdump`分析工具,特别是针对Websphere环境的`ha`和`jca`工具,以及如何使用JDK1.6来打开和解析这些文件。 首先,`javacore`文件是Java虚拟机(JVM)在遇到特定事件(如...
Java Flight Recorder & Mission Control 一个高效的性能分析工具 Java Flight Recorder(JFR)是一款高效的性能分析工具,旨在帮助开发者和运维人员深入了解Java应用程序的运行时行为、性能瓶颈和故障原因。JFR的...