jprofiler监控工具使用说明
Java性能监控:使用JProfiler或VisualVM等工具进行性能监控

Java性能监控:使用JProfiler或VisualVM等工具进行性能监控引言:在开发和部署Java应用程序时,性能是一个至关重要的方面。
优化应用程序的性能可以提高用户体验,减少资源消耗,并确保应用程序能够在高负载下正常运行。
为了实现这一目标,开发人员需要使用专业的性能监控工具来分析和优化应用程序的性能。
本文将介绍两种常用的Java性能监控工具:JProfiler和VisualVM,并探讨它们的使用方法和优势。
一、JProfilerJProfiler是一款功能强大的Java性能分析工具,它提供了丰富的功能和直观的界面,可以帮助开发人员深入了解应用程序的性能瓶颈,并提供相应的优化建议。
下面将介绍JProfiler的使用步骤:1. 安装和配置:首先,我们需要下载并安装JProfiler。
安装完成后,打开JProfiler并创建一个新的会话。
在会话配置中,选择要监控的Java进程,并设置相关的参数,如端口号和采样频率。
2. 启动监控:配置完成后,点击“开始监控”按钮,JProfiler将连接到目标Java进程,并开始收集性能数据。
在监控过程中,我们可以实时查看应用程序的CPU使用率、内存使用情况、线程状态等信息。
3. 分析性能数据:当我们收集到足够的性能数据后,可以使用JProfiler的分析工具来深入分析应用程序的性能问题。
例如,我们可以查看方法调用的耗时、内存分配的情况以及线程之间的竞争情况。
通过这些数据,我们可以找到性能瓶颈,并进行相应的优化。
4. 优化建议:在分析性能数据的过程中,JProfiler会根据收集到的数据提供相应的优化建议。
这些建议可以帮助开发人员识别潜在的性能问题,并提供相应的解决方案。
例如,JProfiler可能建议我们使用更高效的数据结构、减少内存分配或者优化数据库查询等。
二、VisualVMVisualVM是一款免费的Java性能监控和分析工具,它是基于Java技术的,可以与任何支持Java虚拟机诊断引擎(JVM TI)的Java应用程序进行交互。
jprofiler监控工具使用说明

JProfiler安装部署说明JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。
它把CPU、执行绪和内存的剖析组合在一个强大的应用中。
JProfiler可提供许多IDE整合和应用服务器整合用途。
JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。
它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能,JProfiler功能很强大,可以监控普通的java application, applet, java web start, application server 等。
除了可以监控本地的程序,还可以对远程服务器上跑的应用进行监控。
目前JProfiler最新版本是6.0,由于JProfiler需要注册码,网上找到的资源中windows、linux都破解的只有4.3.2版本,这次就使用这个版本进行说明。
最新版下载连接/download/jprofiler/files.php。
一、安装说明在监控端安装windows版的jprofiler4,在服务器端安装linux版的jprofiler4。
windows下安装:点击exe文件进行安装,安装后使用文件中的注册码进行注册linux下服务端安装:直接解压即可二、配置对java application的监控下面以JProfiler监控远程应用程序为例,来说明对远程应用程序监控的配置方法:一、首先启动JProfiler,出现quick start对话框,选择An application on a remote computer,next,如下图:二、有2个选项,on this computer和on a remote computer,这里是选择被监控的程序的位置,这里选择on a remote computer,同时选择远程机器的类型是windows还是linux等,如下图:三、填写远程机器地址,这里是192.168.9.53,如下图:四、填写远程机器JProfiler的安装地址,我这里是/home/sps/jprofiler4,如下图:五、选择远程机器的java运行环境,这里是sun\1.5.0\hotspot,如下图:六、默认监控端口8849,如下图:七、Wait for ……为了在开发环境中获取监控的信息,它将等待远程计算机上的Jprofile GUI 启动,并和本机建立连接,这种方式比较便于修改jprofiler的配置信息。
JProfiler在Linux上的安装和使用

JProfiler在Linux上的安装和使用一前言前段时间网厅web服务老是OutOfMemoryError,查找了一些网站,找到一个应用监控工具JProfiler,可以在本地机器上监控远程服务器上的应用。
搭建环境的时候遇到了一些问题,也查找了网上的一些资源,但都不太全面,现把自己的安装和使用过程记录下来,方便后来人使用。
二环境介绍服务器端操作系统:linux RedHat AS 5应用服务器:WebLogic 9.2java虚拟机版本:1.5.0.07jprofiler版本:jprofiler_linux_5_1_4.sh(在csdn可以下载到)客户端操作系统:Windows Xp SP2Jprofiler5.1.4 for windows(安装包:jprofiler_windows_5_1_4.exe在csdn 可以下载到)三客户端JProfiler安装及配置1.打开本地jprofiler1-1 图1-1使用向导,我们可以选择Cancel2.1-2选择session->Integration wizards->New Remote Integration 3.1-31)The profiled application is located选择On a remote computer2)Platform of the remote computer选择Linux X86/AMD643)Next4.1-4 Remote address中写入所要监控的服务器IP地址51-5Installation directory中写入jprofiler在服务器中的路径,比如/opt/jprofiler5(此路径为远程服务器上jprofiler的安装路径)61)1-6-12)JVM Vendor选择Sun1-6-2Version 选择1.5.0,如果服务器操作系统是64位,需要勾选64bit jvm 3)Next71-7 JProfiler port :写入8849 默认81-8 选择Wait for a connection from the JProfiler GUI91-9红框中内容设置环境变量时使用。
jprofiler使用方法

点完OK按钮之后,会自动弹出tomcat启动的dos窗口,这个 窗口不能关闭,关闭之后,tomcat和jprofiler就停了。
这个视图会给出,虚拟中的对象实 哪里创建的,用这个基本上就能确 是哪里内存泄露了。
这个视图时看虚拟机垃圾回收的工作状态的。
这个视图时看虚拟机垃圾回收的工作状态的。
选中想要监控的对象,右键,现则“add Selection to Class tracker”
点这个加号按钮也能添加要监控的对象。
这个视图是 某个对象个实例个数,和时间的一个二 维表。
这个按钮千万不能点,监控时间稍微长 点,时间轴数据一多容易,死机。 如果监控了半天,你点了这个,估计这 半天的监控数据就白费了。
这个就是jprofer
连续按几次这个刷新按钮,之 后,随便找一个
红色部分就是做Mark时到现在的对象的增加量, 你主要关注的就是,你们的自定义对象是不是 有,一直增加,回收不下去的。 做完mark之后,过一段时间你看看,这个视图, 看这个试图前一定要连续点击“刷新”,这个 刷新强制虚拟机会后垃圾。
给出,虚拟中的对象实例是都是 ,用这个基本上就能确定,具体
jprofer的主界面了。
监控的对象。
个数,和时间的一个二
,监控时间稍微长 容易,死机。 源自了这个,估计这
Jprofiler监控Weblogic10_操作手册

1Jprofiler监控本地weblogic服务器1.1环境准备1.1.1Jprofiler7.1安装1.将Jprofiler安装文件jprofiler_windows_7_1.zip解压到任一一个没有中文字符的目录下如2.进入到安装目录的bin目录下(D:\jprofiler7.1\jprofiler7\bin),双击“jprofiler.exe”3.在弹出的窗口中除注册页面需要填写license(公司和姓名可以随便填写,license请参考),其他选择默认配置1.1.2Weblogic1.1.2.1安装Weblogic10.31.将Weblogic10的安装包“weblogic server103_win32(jh).7z”解压2.双击可执行文件“weblogic server103_win32.exe”进行安装3.安装步骤请参照:大体类似。
1.1.2.2创建Weblogic域1.Weblogic安装完成后需要创建一个新的Weblogic域2.具体创建域的操作步骤请参考:1.1.3MyEclipse安装开发工具我这里使用是myeclipse7(其他版本也可以),安装步骤: 略1.2示例1.2.1建立Java工程1、在开发工具myeclipse7中新建WEB项目Jprofilertest2、建包cn. Jprofilertest3、在该包下建类文件TestBean.java和TestMain.javapackage cn.Jprofilertest;public class TestBean {String name = "";public static void main(String[] args){System.out.println("test");}package cn. Jprofilertest;import java.util.ArrayList;public class TestMain {public static ArrayList list = new ArrayList(); //存放对象的容器public static int counter = 0; //作统计用}4、建测试用的JSP文件init1.jsp、init2.jspInit1.jsp(每次执行都创建1万个TestBean对象)<%@ page language="java" import="cn. Jprofilertest.*" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>init</title></head><body><%for(int i=0;i<10000;i++){TestBean b = new TestBean();TestMain.list.add(b);}%>SIZE:<%=TestMain.list.size()%><br/>counter:<%=TestMain.counter++%></body></html>注:Init2.jsp和init1.jsp一模一样即可(后面有用)。
jperfiler远程监控配置

JProfiler远程监控1、在Linux服务器端安装JProfiler2、在客户端安装Jprofiler并配置连接(截图是远程监控的windows平台):A)、session——integration wizards——New remote integrationB)、选择远程监控的平台windows,点击nextC)、选择jdk版本,如果服务器是64位的jdk则勾上64 bit jvm,点击nextD)、选择等待连接,点击nextE)、输入服务端ip地址,点击nextF)、输入服务端机器上的jprofiler的安装路径,点击nextG)、端口默认8849,点击nextH)、提示需要在服务端插入下面的启动命令:-agentpath:C:\jprofiler7\bin\windows\jprofilerti.dll=port=8849客户端配置完成3、服务端,在C:\jboss-4.2.3.GA(2)\jboss-4.2.3.GA\bin下面编辑run.bat加入下面的启动项-agentpath:C:\jprofiler7\bin\windows\jprofilerti.dll=port=8849如set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m-agentpath:C:\jprofiler7\bin\windows\jprofilerti.dll=port=8849启动jboss,看到waiting for a connection from the JProfiler GUI…就可以了4、配置好服务端后,继续点击客户端的next,然后再点击finish,连接即可注:A)、如果是tomcat则在编辑C:\my\apache-tomcat-6.0.14\apache-tomcat-6.0.14\bin下面catalina.bat如set JAVA_OPTS=%JAVA_OPTS%-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"-agentpath:C:\my\jprofiler_windows_7_1_2\jprofiler7\bin\windows\jprofilerti.dll =port=8849B)、如果是weblogic则编辑C:\bea\weblogic92\samples\domains\workshop\bin 下面的setDomainEnv.cmd如:set JAVA_OPTIONS=%JAVA_OPTIONS% %JAVA_PROPERTIES%-Dwlw.iterativeDev=%iterativeDevFlag% -Dwlw.testConsole=%testConsoleFlag% -Dwlw.logErrorsToConsole=%logErrorsToConsoleFlag%-agentpath:C:\jprofiler7\bin\windows\jprofilerti.dll=port=8849C)、如果是linux中的tomcat,则编辑/usr/local/apache-tomcat-6.0.35/bin下面的catalina.sh文件,在java_opts后面加上-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849"(注意-agent参数要加载“之内)如:if [ -z "$LOGGING_MANAGER" ]; thenJAVA_OPTS="$JAVA_OPTS-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849"elseJAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849"D)、如果是linux中的jboss,则编辑/usr/local/jboss-4.2.3.GA/bin下面的run.sh 文件,在java_opts后面加上-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849(注意-agent参数要加载“之内)如:if [ "$linux" = "true" ]; thenJAVA_OPTS="$JAVA_OPTS .preferIPv4Stack=true-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849"FiE)、如果是linux中的weblogic,则编辑/home/weblogic/user_projects/domains/Test/bin下面的setDomainEnv.sh如:JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES}-Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testConsole=${testConsoleFlag}-Dwlw.logErrorsToConsole=${logErrorsToConsoleFlag}-agentpath:/usr/local/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849"export JAVA_OPTIONS----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------另一种方式(方便的操作linux+weblogic)1、客户端连接配置:A)、session——new window,选择an application server,locally or remotely,点击nextB)、选择监控的服务器(weblogic9.2),点击nextC)、选择远程监控机器平台D)、选择jdk版本E)、选择立即启动,随时可以连接jprofiler,(即手动启动服务后,随时jprofiler 可以连接)F)、输入远程ip地址G)、输入远程机器上的jprofiler的路径H)、选择远程配置文件的路径(完成后要把本地生成的config.xml拷贝到这)选择拷贝配置文件到这个路径I)、这里选择提前在服务器上拷贝下来的startWebLogic.sh文件J)、显示端口,点击nextK)、提示要在服务端操作的内容,点击next2、服务端A)、把C:\Users\xxxxxxx\.jprofiler7\config.xml拷贝到服务器的/home/weblogic/user_projects/domains/Test/bin路径下(要设置下这个文件的可操作权限chmod a+x/home/weblogic/user_projects/domains/Test/bin/config.xml)B)、把F:\test\startWebLogic_jprofiler.sh拷贝到/home/weblogic/user_projects/domains/Test/bin路径下并授于可操作权C)、./startWebLogic_jprofiler.sh启动weblogic即可第一行是连接成功第二行和第三行是断开第四行是重新连接。
JProfiler使用入门

JProfiler使用入门(一)——准备工作JProfiler是一个全功能的Java剖析工具(profiler),主要用于检查和跟踪系统(限于Java开发的)的性能。
JProfiler可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视JVM运行情况及其性能。
它把CPU、线程和内存的剖析组合在一个强大的应用中。
JProfiler可提供许多IDE整合和应用服务器整合功能。
本文旨在通过简单的例子带领大家进入JProfiler的世界。
我也是刚刚学习哦,大家要是有鸡蛋的话留着吃就好了,现在鸡蛋好贵的^o^1、建立JBoss测试用例打开JProfiler显示QuickStart对话框,选择An application server,locally or remotely,如下图:2、选择服务器点击Next进入“服务器选择”对话框,选择JBoss 4.x,如下图3、选择启动脚本点击Next进入“启动脚本选择”对话框,输入JBoss启动脚本(run.bat)的路径,如下图:4、选择JVM的厂商、版本和模式点击Next进入“JVM选择”对话框,我们选择Sun公司的hotspot 1.4.2,如下图:5、输入JProfiler的端口号点击Next进入“JProfiler端口输入”对话框,我们保持默认不变,如下图:6、选择JBoss是否在连接到JProfiler后再启动JBoss点击Next进入“JBoss是否在连接到JProfiler后再启动”页面,这里我们保持默认选择,即在JBoss连接到JProfiler后再启动JBoss,如下图:7、确认配置点击Next进入“确认配置”对话框,确认配置是否正确,如下图,如果不正确点击Back到相应对话框进行修改。
8、配置完成点击Next进入“完成配置”对话框,点击finish完成配置,并启动JBoss服务器,控制台界面如下图:到这里JProfiler就建立起了一个简单的测试用例,后面的文章中我会陆续向大家介绍JProfiler如何测试一些具体例子。
jprofiler9.2入门教程

JProfiler9入门教程JProfiler简介 (2)JProfiler安装及配置 (2)window下安装及配置 (2)Linux下安装及配置 (15)JProfiler监控方式介绍 (17)1.等待模式 (17)2.非等待模式 (17)3.离线模式 (17)创建监视本地Tomcat的工程(等待模式) (18)创建监视远程Tomcat的工程(等待模式) (24)创建监视远程Tomcat的工程(非等待模式) (24)创建监视远程Java程序的工程 (25)Jprofiler分析视图简介 (26)遥测(Telemetries) (26)实时内存视图(Live memory) (27)堆遍历视图(Heap walker) (28)CPU视图(CPU views) (30)线程视图(Threads) (30)锁视图(Monitor&locks) (31)数据库快照对比(Databases) (31)Java探针(JEE&Probes) (31)Mbeans (31)案例分析 (32)内存泄漏查找 (36)线程阻塞 (43)查看占用CPU较多的方法 (44)检测sql语句的执行效率 (44)帮助手册 (45)JProfiler简介JProfiler 是一个非常优秀的的 JVM 性能分析工具,可监视本地和远程的 JVM,适用于各种操作系统。
常用的功能有:1、监视堆内存占用情况和创建对象实例的数量,找出内存泄露的根源。
2、监视占用 CPU 较多的方法3、监视线程的阻塞与死锁4、监视 GC 的耗时。
JProfiler安装及配置window下安装及配置安装:1) 从官网下载JProfiler安装包 jprofiler_windows-x64_9_2.exe2) 双击运行3) 选择“Customize installation” Next4) 选择“I accept the agreement” Next5) 点击browser选择安装目录 Next6) 选择“Window x86 32 and 64 bit” Next7) 一路默认 Next 直到出现“License information”弹框,选择 Yes 选项 Next8) 选择 Enter license key >Single or evaluation license (Name、Company随便写License key输入以下任一注册码) NextL-Larry_Lau@#23874-hrwpdp1sh1wrn#0620L-Larry_Lau@#36573-fdkscp15axjj6#25257L-Larry_Lau@#5481-ucjn4a16rvd98#6038L-Larry_Lau@#99016-hli5ay1ylizjj#27215L-Larry_Lau@#40775-3wle0g1uin5c1#06749)IDE Integration 非必选项,根据需要选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JProfiler使用说明整理人:大傻,徐磊整理时间:2010-4-11 简介 (2)2 安装说明 (2)3 配置 (2)3.1 本机监控配置 (2)3.2 远程监控配置 (6)3.3 启动监控 (11)4 主要功能简介 (12)4.1 内存剖析M EMORY PROFILER (12)4.2 堆遍历H EAP WALKER (13)4.3 CPU剖析CPU PROFILER (13)4.4 线程剖析T HREAD PROFILER (14)4.5 VM遥感勘测技术VM TELEMETRY (15)5 实战操作 (16)5.1 任务目标 (16)5.2 配置说明 (16)5.3 测试项目 (16)5.4 配置测试 (17)5.5 开始测试 (23)5.6 总结 (27)1简介JProfiler是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。
它把CPU线程和内存的剖析组合在一个强大的应用中。
JProfiler可提供许多IDE整合和应用服务器整合用途。
JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存泄漏(memory leaks)、并解决线程的问题。
它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存泄漏;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java 外挂功能,JProfiler功能很强大,可以监控普通的java application, applet, java web start, application server 等。
除了可以监控本地的程序,还可以对远程服务器上跑的应用进行监控。
最新版下载连接/download/jprofiler/files.php。
当前使用版本为5.1.42安装说明1.安装windows下安装,点击exe文件进行安装,默认安装即可。
linux下服务端安装,直接解压即可。
安装时会自动搜索是否安装过JDK ,可不必配置.2.注册方法:1)破解文件解压缩到[程序安装目录]/bin文件夹下,覆盖其中两个文件夹。
2)在命令行模式下到当前目录下执行命令:“java -cp . Keygen”就能获取到注册码。
【注意事项】由于是破解版本,有些破解的ID,使用时存在不能成功启动监控,出现这种问题,建议重新换一个ID。
3配置3.1本机监控配置1.在向导界面中选择An application server locally or remotely(应用服务器在本地或远程)。
2.选择integration wizard(集成向导)。
3.选择the profiled application is located选择本地电脑4.选择Tomcat启动脚本文件路径5.在此选择JDK类型和版本号。
6.在此选择Jprofiler端口号,默认是8849。
7.在此选择Jprofiler启动界面方式。
l wait for a connection from the Jprofiler GUI 监控时tomcat需要由JProfiler 来启动l Don’t wait startup immediately 监控tomcat时不用由JProfiler来启动,可以在tomcat运行中,随时打开JProfiler进行监控。
JProfiler会在之前所选择启动脚本的目录中生成startup_jprofiler.bat,用这个启动脚本启动tomcat就行了3.2远程监控配置1.本地机和远程机都需要安装JProfiler,然后在本地机上的JProfiler中进行设置。
选择An application server locally or remotely(应用服务器在本地或远程),选择integration wizard(集成向导)。
2.选择the profiled application is located远程电脑操作系统类型。
3.填写远程电脑IP。
4.选择远端机上的JProfiler的安装目录。
5.将远端机的tomcat启动脚本拷到本地(目录任意),并在这里选中。
6.此选择JDK类型和版本号。
7.在此选择Jprofiler端口号,默认是8849.8.在此选择Jprofiler启动界面方式。
9.这里的“Wait for JProfiler GUI”,“Don't wait for JProfiler GUI, startupimmediately”,与本地监控中的含义相同。
如果选择“Don't wait for JProfiler GUI, startup immediately”会跳转到下面的界面中此处要将本地机的config.xml同步到远端机上。
填写本地机的config.xml文件在远端机上的路径,然后选择拷贝的方式,我选的是manual手动方式。
“copy to directory”试了但没成功,“execute command”没试过。
之后,JProfiler会根据之前所选中的启动脚本,在同一目录中生成一个新的启动脚本。
将这个脚本复制到远端机上。
在远端机上用这个脚本启动tomcat,本地JProfiler才能监控。
3.3启动监控1.启动应用服务器如TOCMAT,jboss (使用Startup_jprofiler.bat脚本启动)2.启动windows下jprofiler,选择session/start center3.选择刚才配置的服务器,点击ok,就开始监控了。
4.看下应用程序下的日志,说明连接成功。
5.JProfiler> Listening on port: 8849。
6.JProfiler> Reconnection. Using last settings.。
4主要功能简介4.1内存剖析Memory profilerJProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。
所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
l所有对象All objects显示类或在状况统计和尺码信息堆上所有对象的包。
你可以标记当前值并显示差异值(mark current values)。
l记录对象Record objects显示类或所有已记录对象的包。
你可以标记出当前值并且显示差异值。
l分配访问树Allocation call tree显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
l分配热点Allocation hot spots显示一个列表,包括方法、类、包或分配已选类的J2EE组件。
你可以标注当前值并且显示差异值。
对于每个热点都可以显示它的跟踪记录树。
4.2堆遍历Heap walker在JProfiler的堆遍历器(Heap walker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。
堆遍历器有五个视图:l类Classes显示所有类和它们的实例。
l分配Allocations为所有记录对象显示分配树和分配热点。
l索引References为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。
还能提供合并输入视图和输出视图的功能。
l数据Data为单个对象显示实例和类数据。
l时间Time显示一个对已记录对象的解决时间的柱状图。
4.3CPU 剖析CPU profilerJProfiler 提供不同的方法来记录访问树以优化性能和细节。
线程或者线程组以及线程状况可以被所有的视图选择。
所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。
CPU视图部分包括:l访问树Call tree显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。
JDBC,JMS 和JNDI服务请求都被注释在请求树中。
请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
l热点Hot spots显示消耗时间最多的方法的列表。
对每个热点都能够显示回溯树。
该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
l访问图Call graph显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
4.4线程剖析Thread profiler对线程剖析,JProfiler提供以下视图:l线程历史Thread history显示一个与线程活动和线程状态在一起的活动时间表。
l线程监控Thread monitor显示一个列表,包括所有的活动线程以及它们目前的活动状况。
l死锁探测图表Deadlock Detection显示一个包含了所有在JVM里的死锁图表。
l目前使用的监测器Current monitor useage显示目前使用的监测器并且包括它们的关联线程。
l历史检测记录History usage history显示重大的等待事件和阻塞事件的历史记录。
l监测使用状态Monitor usage statistics显示分组监测,线程和监测类的统计监测数据。
4.5VM 遥感勘测技术VM telemetry观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所示: l堆Heap显示一个堆的使用状况和堆尺寸大小活动时间表。
l记录的对象Recorded objects显示一张关于活动对象与数组的图表的活动时间表。
l垃圾回收Garbage collector显示一张关于垃圾回收活动的活动时间表。
l类Classes显示一个与已装载类的图表的活动时间表。
l线程Threads显示一个与动态线程图表的活动时间表。
5实战操作5.1任务目标找出项目中内存增大的原因5.2配置说明操作系统:Windows2003Web容器:Tomcat5.0.23JDK版本:sun1.4.2监控类型:本地Jprofiler安装路径:D:\jprofiler5Tomcat安装路径:D:\Tomcat55.3测试项目1.新建WEB项目test2.建包cn.test3.在该包下建类文件TestMain.java 和TestBean.javapackage cn.test;public class TestBean {String name = "";}package cn.test;import java.util.ArrayList;public class TestMain {public static ArrayList list = new ArrayList(); //存放对象的容器public static int counter = 0; //作统计用}4.建测试用的JSP文件init1.jsp、init2.jspInit1.jsp(每次执行都创建1万个TestBean对象)<%@ page language="java" import="cn.test.*"pageEncoding="ISO-8859-1"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>init</title></head><body><%for(int i=0;i<10000;i++){TestBean b = new TestBean();TestMain.list.add(b);}%>SIZE:<%=TestMain.list.size()%><br/>counter:<%=TestMain.counter++%></body></html>Init2.jsp和init1.jsp一模一样即可(后面有用)。