51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 8572|回复: 6
打印 上一主题 下一主题

监控JAVA内存性能的工具:jprobe

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-10-20 15:22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Jprobe配合压力测试查找程序瓶颈点
Jprobe工具观察系统运行时各个类的调用时间

一、配置JPROBE
安装好工具后点
1、File ---Run Settings Wizard
2、Performance -----Application Server
   我选择了Jboss Application Server 3.x/4.x
3、选择jboss的安装目录到 Server Directory
4、选择要检查的war或者ear包,我是用context的方式发布的,所以选择了
   D:\work\ehome\WebRoot\WEB-INF\classes\com
   D:\work\video_manager\WebRoot\WEB-INF\classes\com
5、选择要监测的包名
   我选择了 com.megaeyes.core.*.*()
             com.tianyi.*.*()
             com.megaeyes.*.*()
6、配置的信息存放到文件
   选择了D:\tool\JProbe7.0.1\scripts\ehome.jpl

二、运行JPROBE
1、File ---- Open Current Settings
2、选择正确的配置,点RUN,运行就可以了

三、查看数据
1、点击take a snap等按钮,给内存中的对象照相
2、查看方法等耗用的时间


一.当前,J2EE的开发质量的问题已经越来越突出,“内存泄露”是目前Java应用中最为常见的问题之一,这里以Quest JProbe Suite 工具为例,说明在实际开发中应如何提高开发质量,解决“内存泄露”问题。
  
1.启动JProbe J2EE Integration。
2.从左上角下拉列表中选择你要集成的服务器版本,以tomcat为例子 。然后编辑右侧内容。
  
3.编辑下面区域或使用默认值 ,然后点击“save”按纽
  
3.编辑下面区域或使用默认值 ,然后点击“save”按纽
  Integration ID: JProbe Demo 1 Integration ID,便于重用每次集成过程
Server Directory: D:\bea\wlserver6.1 直接输入WLS服务器根路径或者通过"浏览"方式输入。
Domain Name: Mydomain 输入你想分析的域名。
Startup Script: StartWeblogic.cmd 直接输入要调查的服务器的启动脚本或者通过"浏览"方式输入。
JProbe SettingsJPL File) check the VAR checkbox 集成工具允许你使用先前创建的JPL(JProbe Launchpad)文件。如果要使用由每个工具在启动时默认创建的JPL文件,选择VAR复选框。
Java Executable: d:\sun\jdk1.3.1\bin\Java.exe 可直接输入或通过浏览方式输入Java虚拟机的执行文件路径

3.编辑下面区域或使用默认值 ,然后点击“save”按纽
  
3.编辑下面区域或使用默认值 ,然后点击“save”按纽
  Integration ID: JProbe Demo 1 Integration ID,便于重用每次集成过程
Server Directory: D:\bea\wlserver6.1 直接输入WLS服务器根路径或者通过"浏览"方式输入。
Domain Name: Mydomain 输入你想分析的域名。
Startup Script: StartWeblogic.cmd 直接输入要调查的服务器的启动脚本或者通过"浏览"方式输入。
JProbe SettingsJPL File) check the VAR checkbox 集成工具允许你使用先前创建的JPL(JProbe Launchpad)文件。如果要使用由每个工具在启动时默认创建的JPL文件,选择VAR复选框。
Java Executable: d:\sun\jdk1.3.1\bin\Java.exe 可直接输入或通过浏览方式输入Java虚拟机的执行文件路径

  
4.启动JProbe Memory Debugger的研究会话
a.选择session-New J2EE Settings
b.点击“Manage Configutions”,然后点击“Edit“,在“Application Deploy Directory”下选择项目的根目录。
  
5.在JProbe LaunchPad窗口中选择“Filter”
a.点击“Please enter a package,or method to display data for”。
     b.输入你要调查的包,然后在“Display”栏的下拉菜单里选择“Display”               c.选中"Monitor Garbage Collections from Program Start"复选框
  
5.在JProbe LaunchPad窗口中选择“Filter”
a.点击“Please enter a package,or method to display data for”。
b.输入你要调查的包,然后在“Display”栏的下拉菜单里选择“Display”               
c.选中"Monitor Garbage Collections from Program Start"复选框
  
7.当tomcat初始化时,Runtime Heap Graph将增高,这反映了对象创建和垃圾回收活动。一旦tomcat 已经被充分初始化后,就可以开始着手分析了。
a.首先点击“Start Use Case”,然后我们登陆系统。
b. Filter Classes域中填入要监控的类。
c.进行一些需要监控的操作,观察“Count Change”,即堆中各个类找一系列操作中的对象改变数。
d.点击“Finish Use Case”。
  
8.我们注意到BsFormField类的Count Change列显示为+65,这表示从开始运行用例到结束用例运行这段时间内,堆中增加了65个BsFormField对象,很可能就是内存泄漏的对象。
9.这部分我们将找到究竟是哪些存活对象还持有BsFormField游离实例的引用。打开Class View窗口查看snapshot中的数据,通过Instance Detail View可以更深入地看到BsFormField的细节信息,最后打开Source窗口我们将看到原来是BsFormDate仍然持有游离对象BsFormField 。
  
  a. 选中要分析的snapshot,点击”Class View”。打开的窗口显示了堆中的类。
     b. 选中BsFormFiled类并点击”Merged Allocation Points View” 。这样可以查看到该类在是由谁实例化的及个数。
  
c.右击BsFormDate.putForce(String,String),选择”Allocate At Source”,弹出的窗口显示选中的putForce( )方法并定位到了分配BsFormFiled实例的代码行。至此,你看到了BsFormFiled是在什么地方被实例的。
  
c.找到代码行后,即说明在此方法中实例化的BsFormField对象在使用后未被置null,释放对象。
d.找到原因之后,我们在每次使用BsFormField后,手动置null,确保对象被释放。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-1-28 10:49:52 | 只看该作者
不错的资料
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2011-2-1 16:33:50 | 只看该作者
    很好,收藏
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-9-6 11:13:40 | 只看该作者
    非常好,我来试试好不好使。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-10-9 12:40:30 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-4-21 10:13:14 | 只看该作者
    我正在招聘性能测试感兴趣的请到查看http://bbs.51testing.com/thread-541335-1-1.html,待遇丰厚
    外企,上班早9晚6,上班规律,几乎不加班周末休息
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-5-18 12:55:40 | 只看该作者
    支持,我认为你太厉害了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-2 14:22 , Processed in 0.076399 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表