`
lujar
  • 浏览: 512816 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用开源的Profiler来测试你的Java应用程序的性能

阅读更多

最近一些朋友谈到了系统性能分析的问题。想分析一个基于Java的系统为什么会慢最好的方法就是使用Profiler.

profiler的原理是通过一些驱动和jvm绑定来读取jvm的运行时的情况,得到从类的加载到执行到结束整个过程中时间情况,从而知道到底那些函数的那些方法让你的系统变的很慢。

比较好的开源Profiler工具有Extensible Java Profiler和Eclipse Profiler Plugin

1 Extensible Java Profiler一般用来测试桌面应用程序。

使用以下的方法来运行一个程序

run-enabled application-main-class
java –Xruntracer application-main-class

程序结束以后会产生一个tracer-output.bin.gz

然后使用EJP Presenter打开这个生成的文件。通过选择自己感兴趣的类,就可以查看到执行过程中各个方法的调用时间了。

2 Eclipse Profiler Plugin通常用于测试WebApplication

以tomcat为例,在catalina.bat中加入以下配置

set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=
following line:
set JAVA_OPTS=-XrunProfilerDLL:1 -Xbootclasspath/a:jakarta-regexp.jar;profiler_trace.jar;commons-lang.jar -D__PROFILER_PACKAGE_FILTER=__A__%MAINCLASS%;__M__sun.;__M__com.sun.;__M__java.;__M__javax.;__M__org.apache. -D__PROFILER_TIMING_METHOD=1

来绑定jvm,这里的__A__表示启动类 __M__表示不监视的类

然后进入eclipse,在run面板的profiler里面设置要要监视的类,然后启动tomcat,运行的结果可以在下面的面板中看到。包括执行时间,调用率等等。

当遇到性能瓶颈的时候,不妨自己动手测试一下,说不定能发现不少问题。对代码的重构能产生帮助

补充几点

1 Extensible Java Profiler的Presenter运行时候如果报错:class版本是4.9,应该是4.8,这是因为jdk1.5编译的class是4.9版本,而jdk1.4是4.8,所以你可以再装一个1.5的jdk,设置jre路径来运行

2 运行的时候速度会变慢这是正常的。所以看结果的时候不能光看执行的时间,而要看百分比

3 生成的ejp文件会很大,运行后可以及时清除

4 Eclipse Profiler Plugin在新版本里面无法安装插件,这个问题我不清楚为什么,可能存在一定兼容性问题,我是一直用eclipse 2.X的。

分享到:
评论

相关推荐

    java web开发性能监测工具

    Java Web开发性能监测工具是开发者用来优化应用程序性能的关键工具,它们可以帮助我们识别并解决系统中的瓶颈,提升用户体验,以及确保服务的稳定性和高效性。在Java Web开发领域,有许多这样的工具,它们各自拥有...

    Flex 应用程序性能: 改善客户端应用程序和服务器性能的技巧与技术

    ### Flex 应用程序性能:改善客户端应用程序和服务器性能的技巧与技术 #### 概述 随着互联网技术的发展,富互联网应用(RIA)的需求日益增长。Macromedia Flex 是一个强大的平台,它允许开发者创建高性能的 RIA。...

    使用Java写的GVmaker虚拟机(开源)

    - `manifest.mf`是Java应用程序的清单文件,它包含有关JAR文件的信息,如主类(程序启动点)、版本信息和库依赖等。 - `build.xml`是Apache Ant构建工具的配置文件,用于自动化Java项目的构建过程,包括编译源代码、...

    Extensible Java Profiler剖析工具+源代码

    EJP(Extensible Java Profiler)是一款开源的Java剖析工具,专门设计用于帮助开发者深入理解Java应用程序的运行时性能。它提供了丰富的功能,包括内存分析、线程分析、CPU性能分析等,旨在帮助开发者定位并优化代码...

    OptimizeitProfiler6.zip

    总结来说,OptimizeitProfiler6是Java开发人员的得力助手,它通过深入的内存、CPU和线程分析,为优化Java应用程序提供了有力的支持。借助其强大的功能和友好的用户体验,开发者可以更好地理解和解决性能问题,从而...

    SimpleProfiler-开源

    这个工具的设计目标是提供一个轻量级且高效的解决方案,帮助开发者检测和解决与Java应用程序内存管理相关的问题。 在Java开发中,内存管理是一个至关重要的环节,尤其是在大型或高并发的应用中。内存泄漏、过度的...

    TurboProf - Open Source Java Profiler-开源

    总的来说,TurboProf是一个强大的工具,它利用开源的力量,提供了一种有效的方式来检测和解决Java应用的性能问题,特别是锁定和方法执行时间方面。开发者可以通过深入理解TurboProf的工作原理和使用方法,提升其优化...

    java工具 tools

    自动化测试是软件开发流程中的一个关键环节,它通过使用特定的软件工具来执行预先定义的测试用例,以验证程序的功能和性能。自动化测试可以显著提高测试效率,减少人工错误,并且在回归测试阶段特别有用,因为它们...

    java监控工具

    Java监控工具是用于跟踪和分析Java应用程序性能的关键组件。这些工具可以帮助开发者、系统管理员和运维人员深入了解应用程序的运行状况,及时发现并解决性能问题。在Java生态系统中,有许多优秀的监控工具,它们提供...

    j2ee性能调优之最小化资源压力测试法则

    这个方法强调在PC环境下,使用应用程序能够运行的最小配置来进行压力测试,以揭示潜在的性能瓶颈。 在J2EE应用中,性能调优通常涉及到程序、数据库、应用服务器、JVM(Java虚拟机)和操作系统的多个层面,由于其...

    JAVA代码优化工具

    Java代码优化是提升应用程序性能的关键步骤,尤其是在大型企业级应用或者高性能服务中。优化能够减少内存消耗,提高程序运行速度,降低CPU使用率,并改善整体的用户体验。在Java开发领域,有多种工具可以帮助开发者...

    Eclipsecon08-Profiling.ppt

    Eclipse TPTP(Test and Performance Tools Platform)是IBM和Intel等公司合作开发的一个开源项目,旨在为Java应用程序提供测试和性能优化的工具平台。自2002年作为Eclipse Tools Project的一部分启动以来,它在2005...

    jip-src-1.2

    2. **实时监控**:它提供实时性能数据,允许开发者在运行时观察程序性能的变化,快速定位问题。 3. **轻量级**:JIP的设计目标是尽可能小的影响应用程序的正常运行,因此它对系统资源的占用较低。 4. **易用性**:...

    weblogic server 11g +p6spy +sql profiler 配置

    WebLogic Server 11g是一款由Oracle公司提供的企业级Java应用服务器,用于部署和管理Java应用程序,特别是基于Java EE的企业级应用。P6Spy则是一个开源的数据库监控工具,它能够帮助开发者和管理员追踪和分析SQL执行...

    Tomcat6.x + P6spy + SqlProfiler集成

    在Java Web开发中,Tomcat是一款广泛应用的开源Web服务器和应用服务器,主要用于运行Servlet和JSP应用。P6spy和SqlProfiler则是两个用于数据库性能监控和分析的工具。这篇内容将详细解释如何将这三者集成,以提升对...

    java APP抓包工具

    对于Java开发者,可以通过Fiddler的"JAR捕获"功能来分析Java应用的网络活动。 3. **Charles Proxy**:这是一款流行的HTTP代理/HTTP分析器,适用于Mac、Windows和Linux。Charles不仅能够捕获和显示HTTP/HTTPS请求,...

    Java开源Eclipse插件.pdf

    9. **Profiler**:性能分析器,用于测量和优化应用程序性能,特别适用于BS(浏览器-服务器)应用程序。 10. **AdvanQas**:提供条件语句的智能提示和结构修改,提升代码编写效率。 11. **Log4E**:专为Log4j设计的...

    btrace java线上debug神器

    它无需修改或重新部署代码,就能实时地对运行中的Java应用程序进行动态追踪,帮助我们收集必要的信息,如方法调用、性能指标、日志记录等。这种“热调试”(hot debugging)的概念使得BTrace在不中断服务的情况下,...

Global site tag (gtag.js) - Google Analytics