使用开源的Profiler来测试你的Java应用程序的性能
来源:互联网 发布:应用层的网络通信协议 编辑:程序博客网 时间:2024/05/21 18:37
最近一些朋友谈到了系统性能分析的问题。想分析一个基于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的。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=469720
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- Oracle使用profiler来测试PL/SQL的性能
- 你都使用哪些工具来测试代码的性能?
- 利用SQL Profiler来诊断SQL服务器的性能问题
- 使用FiddlerCore来测试你的WebAPI
- Unity的Profiler性能分析
- Unity的Profiler性能分析
- Time Profiler的使用
- 使用缓存计算来提高应用程序的性能
- 【Adreno Profiler】Adreno Profiler & SnapDragon profiler 的安装和使用
- 论基于java的web应用程序的性能测试
- Ajax的三种形式(开源项目)
- 一个手机上的网络聊天游戏(图)
- Mule 架构中的几个名次的解释
- 程序员的正规军和游击队
- 经典面试问题:12小球问题算法(文档)
- 使用开源的Profiler来测试你的Java应用程序的性能
- Java的痛脚
- 程序员的正规军和游击队
- Crazy Wind手机游戏工作室最新A-RPG力作隆重登场(图)
- Netbeans-Profiler的激情接触
- 在exoplatform中使用Tomcat的数据源
- 什么是ESB,企业服务总线
- 小技巧----java中字符串的截取
- 程序员的正规军和游击队