Java开源运行分析工具(转)
Posted 沧海一滴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java开源运行分析工具(转)相关的知识,希望对你有一定的参考价值。
FProfiler是一个非常快的Java profiler.它利用BCEL和log4j来记录每个方法从开始到结尾的日记.FProfiler可以用来在你的应用程序,Servlet,Applet...中找出hotspots.
JRat是一个Java Runtime分析工具包.它的目的是让开发者更好的明白Java程序动行时的状态.JRat包括但并不只局限于性能剖析.
EJP(Extensible Java Profiler ) 开源的Java剖析工具,它使用一个可升级的,可扩展的体系结构.一个Java剖析工具是用来优化Java程序性能的开发工具,它帮助你找出并移除运行开销大的部分.EJP基于JVMPI(Java Virtual Machine Profiler Interface )可用来监控Java应用程序一小部分的执行情况并把它用一些突出的元素在分层的树上表示出来.
JMemProf基于Web的内存剖析工具.JMemProf允许你撷取应用程序在运行时内存剖析信息.
P6Spy用来记录JDBC调用的日记信息.
SQL Profiler是一个快速剖析工具用来统计SQL查询以便了解在哪里创建索引才能提高效率.
IronEye SQL这个轻量级的Java工具提供所有流动在数据库与应用程序之间的SQL统计信息并用多张图表展现.IronEye SQL可以快速优化程序的性能.
JMP是一个针对Java的剖析器.它被用来追踪对象的使用和计算method的运行时间.它利用JVMPI接口来收集统计信息并与JVM相结合.JMP使用一个GTK+接口来显示运行的状态.
JAMon(Java应用程序监视器)是一个免费的,简单,高性能,线程安全的Java API.它让开发者可以方便地监控软件。JAMon用来测定程序的性能瓶颈,程序与用户的互动性和程序的可量测性。JAMon收集概要的统计数据比如执行时间(总的,平均的,最大的,最小的等),并发程序请求等。JAMon把这些统计数据以报表的形式展示出来。
NetBeans剖析器项目把JFluid(源自Sun实现室)剖析技术结合到NetBeans IDE中.随着Java程序的大小与复杂性的增长,并要保持程序性能的需求变得越来越因难,因此进行软件的剖析必将成为开发周期中自然的一部分。
一个基于JVMPI的Java剖析器。它在一个XML文件中收集所有方法被调用的记录并把它们展示TreeMap中。
JUnitPerf是JUnit测试集的一个扩展工具。它包含在JUnit测试中用来完成性能测量与程序功能的可量测性。
这个工具是用来调试在任何Java应用程序中的内存泄露和耗损.
一个可在运行期剖析应程序的简单框架.它主要是运用在J2EE Web应用程序.
InfraRED是一个用AspectJ开发的监测J2EE应用程序性能和诊断性能问题的工具。
JBossProfiler是一个利用JVMPI系统基于log的剖析器。它使用一个C开发的代理从JVM捕获事件并把它们记录到磁盘中。一个运行在JBoss或其它机器上的Web应用程序可被用来分析这些日记。
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名设置过滤器
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名设置过滤器
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应该能够根据不同的人群按需使用,同时在功能不断复杂和强大的过程中仍然能够保证较轻的架子。
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应该能够根据不同的人群按需使用,同时在功能不断复杂和强大的过程中仍然能够保证较轻的架子。
VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控,分析,获胜Thread-Dumps,浏览Heap dumps。系统管理员可以利用它来监测,控制Java应用程序横跨整个网络的情况。Java应用程序使用人员可以利用它来创建包含所有必要信息的Bug报告。
Perf4J是一个用于记录、监测和分析Java应用程序性能的开源工具。如同log4j类似于System.out.println()一样,Perf4J类似于System.currentTimeMillis()。
Perf4J提供的功能包括:
Perf4J提供的功能包括:
- 用于计时的简单的停止观测(stop watch)机制。
- 用于解析日志文件的命令行工具,可以生成聚合统计和性能图表
- 易于与常见的日志框架和facades集成:log4j、java.util.logging、Apache Commons Logging及SLF4J。
- 运行时自定义log4j appender 产生统计数据和图表
- 可以将性能统计暴露为JMX属性,当统计超出指定极限时发送通知。
- 用于展现Web应用性能图表的Servlet。
- 提供了@Profiled注解和一套客户化的方面(aspect),在处理AOP框架如AspectJ或Spring AOP时可以灵活插入计时语句。
Perfmon4j是一套性能监测工具,它能够诊断性能瓶颈,监控吞吐量和servlet响应时间。
jSonde能够分析现有Java应用程序,然后生成UML序列图,测量性能(包括CPU和内存)和创建各种报表如:jar包依赖等。jSonde由两个组件组成:一个附加在Java进程中的代理用来收集相关信息,一个GUI程序用于查看由代理组件收集的结果信息。
JavaMelody能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
Basher是一个针对Java POJOs的分析和性能测试框架。适用于开发人员和测试人员使用,让他们能够快速,简便的进行线程测试,描述和衡量他们的代码在各种预先设定情景下的性能。
CheckThread是一个静态分析工具用于在编译期捕捉Java并发错误(concurrency bugs)。它使用Java注释或XML来为Java代码定制线程策略,能够在在编译时通过静态分析捕获尽可能多的线程错误。支持Ant,Eclipse和其它IDE插件(Intellij、NetBeans)。
收录时间:2010-09-24 16:34:32
JVM Monitor是一个Eclipse插件用于监控Java程序运行时的CPU占用,线程和内存的使用情况。它不仅可以监控本地程序的运行情况,还可以监控远程主机中的Java程序运行情况。
收录时间:2010-11-16 08:47:34
BTrace是一个实时监控工具,使用了java agent 和jvm attach技术,可以在不停机的情况下实时监控线上程序的运行情况。并且做到最少的侵入,占用最少的系统资源。 Btrace基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。Btrace的脚本是用纯java编写的,基于一套官方提供的annotation,使跟踪逻辑实现起来非常简单。简单来说,就是能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做到内存状况的监控、方法调用的监控等等。
收录时间:2010-12-16 09:17:04
Profiler4j是一个用于分析Java程序CPU使用情况的开源工具。你可以定义规则来分析选择哪一个包,类和方法。在改变这些规则时不需要重启你的应用程序。易于使用只要添一个JVM参数到你的应用程序中。纯Java实现,没有依赖任何本地类库。它由两部分组成:一个分析代理与你的应用程序运行在同一个JVM中。另一个是一个远程控制台能够连接到远程代码并允许用户查看分析数据和改变设置。
收录时间:2011-01-20 20:41:59
收录时间:2011-01-20 20:41:59
http://www.open-open.com/59.htm
以上是关于Java开源运行分析工具(转)的主要内容,如果未能解决你的问题,请参考以下文章
逆向分析工具IDA与开源工具GhidraCutter对比测评