`
dxm1986
  • 浏览: 429208 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java性能分析工具

 
阅读更多

十个最好的Java性能故障排除工具

浏览次数:54次 2008年07月21日 JavaEye 字号:

1.jconsole是随着JDK 1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVMs。详情可查看:jconsole工具介绍

2.VisualVM 集成了几个现有的JDK软件工具,轻量级内存和CPU信息概要能力。这个工具被设计为同时在生产和开发时使用,进一步提高监视的能力和Java SE平台的性能分析能力。

3.HeapAnalyzer 能够通过它采用启发式搜索引擎和分析Java堆栈存储信息发现可能的Java堆栈泄漏区域,它通过解析Java堆栈存储信息,创建定向图表,变换他们成定向树和执行启发式搜索引擎。

4.PerfAnal 是在Java 2平台上为了分析应用表现的一个基于GUI的工具。您能使用PerfAnal的辩认性来查找出您需要调整的代码。

5.JAMon 是一个免费,简单,高性能,安全,允许开发者容易地监测生产应用程序的Java API。

6.Eclipse Memory Analyzer 是帮助您发现内存泄漏和减少记忆消耗量的一台快速和功能丰富的Java堆分析仪。

7.GCViewer 一个免费开源工具,使用Java VM属性-verbose:gc 和-Xloggc生成可视化数据。它也计算垃圾收集相关的性能指标(生产量、积累停留、最长的停留等等)。


如果您正在运行您的应用程序在HP - UX平台,看看下面:

8. HPjmeter
1). 确定和诊断在HP-UX上运行的java 应用程序的问题;
2.) 监察正在运行的java应用程序和分析切面数据;
3.) 捕捉剖面数据与零制备时,使用JDK / JRE的5.0.04或更高;
4.) 在HP - UX , Linux和Windows 系统上运行HPjmeter控制台;
5.) 改善垃圾回收机制的表现。

9.HPjconfig
是 为调整您的HP-UX 11i HPIntegrity Itanium? 和HP 9000 PA-RISC系统核心参量的Java配置工具,匹配您的应用的特征。 HPjconfig为专门制作您的HP-UX硬件工作台提供核心参量推荐。他提供了保持和还原的功能,根据您的客户的需要提供适合的建议,考虑到具体的 Java和HP - UX的版本问题,HPjconfig决定所有最新的HP - UX的修补程序所需的Java性能和功能在系统上安装,并提示出所有遗失或取代补丁。

10.Java Out-of-Box Tool
一个独立的捆绑安装时将安装启动( RC )的脚本,修改核心参量,重建核心和重新起动系统。 在启动期间,启动脚本将修改系统tunables,因而为Java提供更好的“Out of The Box”行为。

 

 

 

 

  共2页『  1  2  』

  FProfiler 

FProfiler是一个非常快的Java profiler.它利用BCEL和log4j来记录每个方法从开始到结尾的日记.FProfiler可以用来在你的应用程序,Servlet,Applet...中找出hotspots.

更多FProfiler信息

  JRat 

JRat是一个Java Runtime分析工具包.它的目的是让开发者更好的明白Java程序动行时的状态.JRat包括但并不只局限于性能剖析.

更多JRat信息

  EJP 

EJP(Extensible Java Profiler ) 开源的Java剖析工具,它使用一个可升级的,可扩展的体系结构.一个Java剖析工具是用来优化Java程序性能的开发工具,它帮助你找出并移除运行开 销大的部分.EJP基于JVMPI(Java Virtual Machine Profiler Interface )可用来监控Java应用程序一小部分的执行情况并把它用一些突出的元素在分层的树上表示出来.

更多EJP信息

  JMemProf 

JMemProf基于Web的内存剖析工具.JMemProf允许你撷取应用程序在运行时内存剖析信息.

更多JMemProf信息

  P6Spy 

P6Spy用来记录JDBC调用的日记信息.

更多P6Spy信息

  SQL Profiler 

SQL Profiler是一个快速剖析工具用来统计SQL查询以便了解在哪里创建索引才能提高效率.

更多SQL Profiler信息

  IronEye SQL 

IronEye SQL这个轻量级的Java工具提供所有流动在数据库与应用程序之间的SQL统计信息并用多张图表展现.IronEye SQL可以快速优化程序的性能.

更多IronEye SQL信息

  JMP 

JMP是一个针对Java的剖析器.它被用来追踪对象的使用和计算method的运行时间.它利用JVMPI接口来收集统计信息并与JVM相结合.JMP使用一个GTK+接口来显示运行的状态.

更多JMP信息

  *J 

*J一个Java程序动态分析工具。这个工具包是为两个主要的目的服务的,
1.帮助收集Java程序动态执行数据
2.提供一个框架来快速简便地分析这些收集到的数据。

更多*J信息

  JAMon 

JAMon(Java 应用程序监视器)是一个免费的,简单,高性能,线程安全的Java API.它让开发者可以方便地监控软件。JAMon用来测定程序的性能瓶颈,程序与用户的互动性和程序的可量测性。JAMon收集概要的统计数据比如执行 时间(总的,平均的,最大的,最小的等),并发程序请求等。JAMon把这些统计数据以报表的形式展示出来。

更多JAMon信息

  NetBeans Profiler 

NetBeans剖析器项目把JFluid(源自Sun实现室)剖析技术结合到NetBeans IDE中.随着Java程序的大小与复杂性的增长,并要保持程序性能的需求变得越来越因难,因此进行软件的剖析必将成为开发周期中自然的一部分。

更多NetBeans Profiler信息

  JTreeProfiler 

一个基于JVMPI的Java剖析器。它在一个XML文件中收集所有方法被调用的记录并把它们展示TreeMap中。

更多JTreeProfiler信息

  JUnitPerf 

JUnitPerf是JUnit测试集的一个扩展工具。它包含在JUnit测试中用来完成性能测量与程序功能的可量测性。

更多JUnitPerf信息

  Cougaar Memory Profiler 

这个工具是用来调试在任何Java应用程序中的内存泄露和耗损.

更多Cougaar Memory Profiler信息

  Atlassian Profiling 

一个可在运行期剖析应程序的简单框架.它主要是运用在J2EE Web应用程序.

更多Atlassian Profiling信息

  InfraRED 

InfraRED是一个用AspectJ开发的监测J2EE应用程序性能和诊断性能问题的工具。

更多InfraRED信息

  JBossProfiler 

JBossProfiler是一个利用JVMPI系统基于log的剖析器。它使用一个C开发的代理从JVM捕获事件并把它们记录到磁盘中。一个运行在JBoss或其它机器上的Web应用程序可被用来分析这些日记。

更多JBossProfiler信息

  JIP 

JIP是一个代码剖析工具非常类似于JDK附带的hprof工具。它的特点包括:
 1.交互性,允许你在JVM运行过程中随时启动或结束剖析器而hprof是在程序启动时就开启JVM退出时结束。
 2. 没有本地代码,大部分剖析器都有一些本地组件(native component)因为这些剖析器使用了需要利用本地组件的JVMPI (Java Virtual Machine Profiling Interface),而JIP是纯Java的,它利用了Java5™的一些特性。JIP对需要剖析的每一个类的每一个方法添加aspect拦截,这些 aspect能够捕获执行数据。
 3.非常低的开销,在很多情况下hprof将会造成一个程序运行变慢20倍,而JIP是轻量级的几乎没有任何开销。
 4.JIP能够通过package/class名设置过滤器

更多JIP信息

  Jwebap 

Jwebap是一个用于J2EE工程(EJB以及WebModule系统)进行性能监控的组件,它有几个特点:
1)基于ASM实现类的静态增强,可以无缝的部署于J2EE系统,对系统的开销几乎可以忽略
2) 部署和使用非常的简单,整个Jwebap的部署只需要部署jwebap_core_**.jar以及需要使用的各种plugin_**.jar,然后配置 jwebap.xml和web.xml就可以完成所有的部署,比起绝大多数的profiling容易的多。 同时Jwebap提供Web Console进行整个Jwebap的管理和数据展现。在API层提供一套默认的视图框架供plugin开发者使用,可以只用Jar包就开发出相当漂亮的 Web界面。
3)Jwebap的开发分为两个部分Jwebap-core部分,Jwebap-plugin部分。core部分基于jdk14提 供了类静态增强,轨迹生命管理,Plugin管理,视图框架等等,在这个基础上开发plugin。我觉得,好的profiling应该能够根据不同的人群 按需使用,同时在功能不断复杂和强大的过程中仍然能够保证较轻的架子。

更多Jwebap信息

  VisualVM 

VisualVM 是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控,分析,获胜Thread- Dumps,浏览Heap dumps。系统管理员可以利用它来监测,控制Java应用程序横跨整个网络的情况。Java应用程序使用人员可以利用它来创建包含所有必要信息的Bug 报告。

更多VisualVM信息

  Perf4J 

Perf4J是一个用于记录、监测和分析Java应用程序性能的开源工具。如同log4j类似于System.out.println()一样,Perf4J类似于System.currentTimeMillis()。
Perf4J提供的功能包括:
  • 用于计时的简单的停止观测(stop watch)机制。
  • 用于解析日志文件的命令行工具,可以生成聚合统计和性能图表
  • 易于与常见的日志框架和facades集成:log4j、java.util.logging、Apache Commons Logging及SLF4J。
  • 运行时自定义log4j appender 产生统计数据和图表
  • 可以将性能统计暴露为JMX属性,当统计超出指定极限时发送通知。
  • 用于展现Web应用性能图表的Servlet。
  • 提供了@Profiled注解和一套客户化的方面(aspect),在处理AOP框架如AspectJ或Spring AOP时可以灵活插入计时语句。
    meanChart.jpg 
  • 更多Perf4J信息

      Perfmon4j 

    Perfmon4j是一套性能监测工具,它能够诊断性能瓶颈,监控吞吐量和servlet响应时间。

    更多Perfmon4j信息

      jSonde 

    jSonde能够分析现有Java应用程序,然后生成UML序列图,测量性能(包括CPU和内存)和创建各种报表如:jar包依赖等。jSonde由两个组件组成:一个附加在Java进程中的代理用来收集相关信息,一个GUI程序用于查看由代理组件收集的结果信息。
    memoryHeap.jpg 

    更多jSonde信息

      JavaMelody 

    JavaMelody 能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
    graphs.jpg

    更多JavaMelody信息

      Basher 

    Basher是一个针对Java POJOs的分析和性能测试框架。适用于开发人员和测试人员使用,让他们能够快速,简便的进行线程测试,描述和衡量他们的代码在各种预先设定情景下的性能。

    更多Basher信息

      CheckThread 

    CheckThread 是一个静态分析工具用于在编译期捕捉Java并发错误(concurrency bugs)。它使用Java注释或XML来为Java代码定制线程策略,能够在在编译时通过静态分析捕获尽可能多的线程错误。支持Ant,Eclipse 和其它IDE插件(Intellij、NetBeans)。
    CheckThread
    收录时间:2010-09-24 16:34:32

    更多CheckThread信息

      JVM Monitor 

    JVM Monitor是一个Eclipse插件用于监控Java程序运行时的CPU占用,线程和内存的使用情况。它不仅可以监控本地程序的运行情况,还可以监控远程主机中的Java程序运行情况。
    domain.png
    收录时间:2010-11-16 08:47:34

    更多JVM Monitor信息

      BTrace 

    BTrace 是一个实时监控工具,使用了java agent 和jvm attach技术,可以在不停机的情况下实时监控线上程序的运行情况。并且做到最少的侵入,占用最少的系统资源。 Btrace基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。Btrace的脚本是用纯java编写的,基于一套官方提 供的annotation,使跟踪逻辑实现起来非常简单。简单来说,就是能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做 到内存状况的监控、方法调用的监控等等。
    收录时间:2010-12-16 09:17:04

    更多BTrace信息

      Profiler4j 

    Profiler4j 是一个用于分析Java程序CPU使用情况的开源工具。你可以定义规则来分析选择哪一个包,类和方法。在改变这些规则时不需要重启你的应用程序。易于使用 只要添一个JVM参数到你的应用程序中。纯Java实现,没有依赖任何本地类库。它由两部分组成:一个分析代理与你的应用程序运行在同一个JVM中。另一 个是一个远程控制台能够连接到远程代码并允许用户查看分析数据和改变设置。
    mem.jpg
    收录时间:2011-01-20 20:41:59

    更多Profiler4j信息

      Caliper 

    Caliper是Google的开源框架用于编写,运行和查看JavaMicrobenchmarks测量的结果。
    Caliper.jpg
    收录时间:2011-02-12 14:12:40

    更多Caliper信息

     

     

      Java运行时间测量:JETM  

    JETM是一个Java程序执行时间测量工具。帮助开发人员定位Java程序中的性能问题。
    收录时间:2011-05-01 17:25:39

    更多Java运行时间测量:JETM 信息

      org.inmemprofiler 

    org.inmemprofiler是一个基于Instrumentation的内存Profiler。

    利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。有了这样的功能,开发者就可以实现更为灵活的运行时虚拟机监控和 Java 类操作了,这样的特性实际上提供了一种虚拟机级别支持的 AOP 实现方式,使得开发者无需对 JDK 做任何升级和改动,就可以实现某些 AOP 的功能了。

    在 Java SE 6 里面,instrumentation 包被赋予了更强大的功能:启动后的 instrument、本地代码(native code)instrument,以及动态改变 classpath 等等。这些改变,意味着 Java 具有了更强的动态控制、解释能力,它使得 Java 语言变得更加灵活多变。

    nbprofiler-classes.gif
    收录时间:2011-05-04 13:54:02

     

     

    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics