1. JProfiler運行環(huán)境配置
安裝目錄結構如下,子目錄中顯示了支持的操作系統(tǒng):
在服務器和客戶端都要安裝JProfiler,并且要安裝License,在分析工具客戶端中進行安裝。Windows環(huán)境中運行客戶端程序:
jprofiler5.1.4\bin\jprofiler.exe
在UNIX系統(tǒng)中運行客戶端程序,執(zhí)行shell腳本:
jprofiler5.1.4\bin\jprofiler
需要安裝License之后才能使用,請使用合法License。
2.分析獨立Java應用
啟動Start Center:
點擊<New Session>,進入Session設置界面:
l 輸入Session的名稱;
l Session Type選擇Local;
l 選擇本機安裝的JVM;
l 設置工作目錄,工作目錄是分析過程中存放數(shù)據(jù)的位置;
l 如果需要的話設置JVM的啟動參數(shù);
l 設置Java應用的main類;
l 設置Java應用的啟動參數(shù);
l 然后在下面的Java File Path輸入框中添加Java應用運行要用到的所有classpath和JAR包。
在Start Center中用<Start>按鈕啟動配置好的Java應用:
3.分析JBoss中的應用
在分析客戶機打開Start Center:
點擊<New Server Integration>進入應用服務器的配置界面:
選擇合適版本的JBoss,點擊<Next>進入下一步:
對于J2EE服務器分析,建議采用遠程模式,并選擇服務器的操作系統(tǒng)類型,點擊<Next>進入下一步:
輸入遠程服務器的地址,然后點擊<Next>進入下一步:
輸入遠程服務器上安裝JProfiler的目錄,然后點擊<Next>進入下一步:
輸入遠程服務器上JBoss的啟動批處理程序目錄位置及文件名,可以先將該批處理文件拷貝到分析客戶機,然后選擇該批處理程序,向導程序會修改該批處理程序,添加加載JProfiler服務端程序的命令參數(shù),然后創(chuàng)建新的批處理程序,原來的批處理程序保留不變。然后點擊<Next>進入下一步:
選擇服務器端JVM的提供商,JVM版本和JVM的運行模式,如果是64位JVM,還要勾選該選項,然后點擊<Next>進入下一步:
設定遠程JProfile分析服務的端口號,缺省端口號是8849,然后點擊<Next>進入下一步:
選擇服務器端JProfiler的啟動模式,一般選擇等待JProfiler GUI連接的方式。由于JVM首先加載JProfiler的服務端代理程序,JProfiler分析服務會停止JVM繼續(xù)啟動,等待JProfiler GUI連接,連接成功后服務器的JVM才會繼續(xù)啟動,分析配置信息會從客戶端傳遞給服務端,例如。
如果選擇不等待的模式,那么服務端的配置會復雜些,要將分析客戶端JProfiler產(chǎn)生的config.xml拷貝到服務器端,然后在服務器啟動時候自動加載該配置文件,分析客戶端和服務器連接的時候,不再將分析配置信息傳遞給服務端,客戶端分析工具的配置id要和服務端的配置id一致,例如:-agentlib:jprofilerti=port=8849,nowait,id=106,config= D:\jTools\jprofiler5.1.4\config.xml
然后點擊<Next>進入下一步,進入配置總覽界面:
然后點擊<Next>進入下一步,進入最后一步生成session,以及修改過的服務器啟動腳本run_jprofiler.bat:
在run_jprofiler.bat中可以發(fā)現(xiàn)類似于以下的修改內(nèi)容:
rem The following lines have been added by the
rem application server integration wizard of JProfiler
set PATH=D:\jTools\jprofiler5.1.4\bin\windows;%PATH%
set JAVA_OPTS=-agentlib:jprofilerti=port=8849 "-Xbootclasspath/a:D:\jTools\jprofiler5.1.4\bin\agent.jar" %JAVA_OPTS%
rem end of modifications
在Start Center中添加了一個Session配置條目:
如果是Windows環(huán)境,那么這些配置存放在登錄用戶的目錄中,類似于:C:\Documents and Settings\UserName\.jprofiler5\config.xml
4.分析WebSphere中的應用
配置WebSphere和配置JBoss類似,關注以下步驟,修改服務器配置:
上圖是選擇WebSphere服務器的配置文件,一般操作是先把遠程服務器上的配置文件server.xml拷貝到分析客戶端的機器上,該文件的位置在E:\IBM\WebSphere61\AppServer\profiles\AppSrv01\config\cells\machine1Node01Cell\nodes\machine1Node01\servers\server1\server.xml。
修改服務啟動腳本,將服務器啟動腳本也拷貝到本地進行修改:
把修改后的server.xml和啟動服務腳本拷貝回服務器上。
server.xml的修改主要是添加了類似于下面紅色標出的內(nèi)容:
<processDefinitions xmi:type="processexec:JavaProcessDef" xmi:id="JavaProcessDef_1120677326792" workingDirectory="${USER_INSTALL_ROOT}" startCommand="" stopCommand="" terminateCommand="" processType="Single">
<executableArguments />
<execution xmi:id="ProcessExecution_1120677326792" processPriority="20" runAsUser="" runAsGroup="" />
<ioRedirect xmi:id="OutputRedirect_1120677326792" stdoutFilename="${LOG_ROOT}/${SERVER}/native_stdout.log" stderrFilename="${LOG_ROOT}/${SERVER}/native_stderr.log" />
<jvmEntries xmi:id="JavaVirtualMachine_1120677326792" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" runHProf="false" hprofArguments="" debugMode="false"
debugArgs="-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777"
genericJvmArguments="-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:G:\jprofiler\bin\agent.jar">
<classpath />
<bootClasspath />
</jvmEntries>
</processDefinitions>
startServer_jprofiler.sh中增加類似于以下的內(nèi)容:
LIBPATH="/oracle/jprofiler/bin/aix-ppc64:$LIBPATH"
export LIBPATH
5. 基本分析
5.1 內(nèi)存分析
查看JVM中內(nèi)存對象的數(shù)量及占用空間:
5.2
5.2 代碼執(zhí)行時間分析
查看方法調(diào)用花費的時間及調(diào)用次數(shù):