最近一些朋友谈到了系统性能分析的问题。想分析一个基于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开发领域,有许多这样的工具,它们各自拥有...
### Flex 应用程序性能:改善客户端应用程序和服务器性能的技巧与技术 #### 概述 随着互联网技术的发展,富互联网应用(RIA)的需求日益增长。Macromedia Flex 是一个强大的平台,它允许开发者创建高性能的 RIA。...
- `manifest.mf`是Java应用程序的清单文件,它包含有关JAR文件的信息,如主类(程序启动点)、版本信息和库依赖等。 - `build.xml`是Apache Ant构建工具的配置文件,用于自动化Java项目的构建过程,包括编译源代码、...
EJP(Extensible Java Profiler)是一款开源的Java剖析工具,专门设计用于帮助开发者深入理解Java应用程序的运行时性能。它提供了丰富的功能,包括内存分析、线程分析、CPU性能分析等,旨在帮助开发者定位并优化代码...
总结来说,OptimizeitProfiler6是Java开发人员的得力助手,它通过深入的内存、CPU和线程分析,为优化Java应用程序提供了有力的支持。借助其强大的功能和友好的用户体验,开发者可以更好地理解和解决性能问题,从而...
这个工具的设计目标是提供一个轻量级且高效的解决方案,帮助开发者检测和解决与Java应用程序内存管理相关的问题。 在Java开发中,内存管理是一个至关重要的环节,尤其是在大型或高并发的应用中。内存泄漏、过度的...
总的来说,TurboProf是一个强大的工具,它利用开源的力量,提供了一种有效的方式来检测和解决Java应用的性能问题,特别是锁定和方法执行时间方面。开发者可以通过深入理解TurboProf的工作原理和使用方法,提升其优化...
自动化测试是软件开发流程中的一个关键环节,它通过使用特定的软件工具来执行预先定义的测试用例,以验证程序的功能和性能。自动化测试可以显著提高测试效率,减少人工错误,并且在回归测试阶段特别有用,因为它们...
Java监控工具是用于跟踪和分析Java应用程序性能的关键组件。这些工具可以帮助开发者、系统管理员和运维人员深入了解应用程序的运行状况,及时发现并解决性能问题。在Java生态系统中,有许多优秀的监控工具,它们提供...
这个方法强调在PC环境下,使用应用程序能够运行的最小配置来进行压力测试,以揭示潜在的性能瓶颈。 在J2EE应用中,性能调优通常涉及到程序、数据库、应用服务器、JVM(Java虚拟机)和操作系统的多个层面,由于其...
Java代码优化是提升应用程序性能的关键步骤,尤其是在大型企业级应用或者高性能服务中。优化能够减少内存消耗,提高程序运行速度,降低CPU使用率,并改善整体的用户体验。在Java开发领域,有多种工具可以帮助开发者...
Eclipse TPTP(Test and Performance Tools Platform)是IBM和Intel等公司合作开发的一个开源项目,旨在为Java应用程序提供测试和性能优化的工具平台。自2002年作为Eclipse Tools Project的一部分启动以来,它在2005...
2. **实时监控**:它提供实时性能数据,允许开发者在运行时观察程序性能的变化,快速定位问题。 3. **轻量级**:JIP的设计目标是尽可能小的影响应用程序的正常运行,因此它对系统资源的占用较低。 4. **易用性**:...
WebLogic Server 11g是一款由Oracle公司提供的企业级Java应用服务器,用于部署和管理Java应用程序,特别是基于Java EE的企业级应用。P6Spy则是一个开源的数据库监控工具,它能够帮助开发者和管理员追踪和分析SQL执行...
在Java Web开发中,Tomcat是一款广泛应用的开源Web服务器和应用服务器,主要用于运行Servlet和JSP应用。P6spy和SqlProfiler则是两个用于数据库性能监控和分析的工具。这篇内容将详细解释如何将这三者集成,以提升对...
对于Java开发者,可以通过Fiddler的"JAR捕获"功能来分析Java应用的网络活动。 3. **Charles Proxy**:这是一款流行的HTTP代理/HTTP分析器,适用于Mac、Windows和Linux。Charles不仅能够捕获和显示HTTP/HTTPS请求,...
9. **Profiler**:性能分析器,用于测量和优化应用程序性能,特别适用于BS(浏览器-服务器)应用程序。 10. **AdvanQas**:提供条件语句的智能提示和结构修改,提升代码编写效率。 11. **Log4E**:专为Log4j设计的...
它无需修改或重新部署代码,就能实时地对运行中的Java应用程序进行动态追踪,帮助我们收集必要的信息,如方法调用、性能指标、日志记录等。这种“热调试”(hot debugging)的概念使得BTrace在不中断服务的情况下,...