Java效能分析神器-JProfiler 本地除錯JBoss
Jprofiler這款工具極其便於對部署在Java應用伺服器上的Java應用程式進行效能分析。我們既可以本地除錯我們的開發環境,也可以遠端除錯生產環境,這裡先簡單介紹一下在本地開發環境上使用Jprofiler。
環境:
JDK: 1.7
JBoss: 6.4
OS: Window 64 bit
首先開啟JProfiler的時候,就會給你一個提示,請建立你希望的Session, 選擇profile application server:
或者你可以略過,進入Jprofiler的主介面之後再建立:
接下來就是一步一步的傻瓜式的操作。
選擇應用伺服器的型別:
選擇Local還是remote,這裡是local:
選擇JVM的版本:
選擇應用伺服器的啟動指令碼。在這裡,Jprofiler會為你的啟動指令碼增加一些啟動項,主要是啟動Jprofiler Agent並配置基本的profile項
具體是把如下內容寫到Jboss的啟動腳本里(也就是JVM的啟動屬性):
set JAVA_OPTS=-agentpath:C:\PROGRA~1\JPROFI~1\bin\WINDOW~1\jprofilerti.dll=port=8849,nowait,id=110,config=C:\Users\j18li.jprofiler9\config.xml -Djboss.platform.mbeanserver -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl %JAVA_OPTS%
可以看到,指定了Jprofiler Agent的啟動目錄,和Jprofiler的配置指令碼(C:\Users\j18li.jprofiler9\config.xml )
並生成一個新的Jboss啟動指令碼:
standalone_jprofiler.bat
最後,選擇埠!
這時,任何時候,你通過standalone_jprofiler.bat啟動你的Jboss後,你就可以通過Jprofiler attach到對應的JBoss應用上了
接著,假設你已經啟動了Jboss, 然後就可以通過quick attach,把Jprofiler掛到你的應用伺服器上:
之後,JProfiler會讓你選擇需要進行效能監控的項
一般來說,在本地除錯,也就是說,在你的開發環境上,你可以選擇Instrumentation,這時會對包括所有的函式呼叫次數,資料等進行詳細的監控,雖然會有比較大的開銷,但JProfiler支援的所有功能你都能夠用上,能夠對整個App進行全面的效能監控。但如果工程很大,還需要配合filter,只監控你關心的package或classes。
如果是在執行的產品環境上,一般選擇Sampling,這時會通過取樣的方式(每隔一段時間收集一些資料)來做效能監控,這種模式下對系統的消耗最小,也最安全,甚至可以用在產品環境上。
因為這個例子是local,我們就選擇Instrumentation.
連上之後,我們就可以看到JProfiler開始監控你的JVM了
但具體我們怎麼利用Jprofiler來找到效能瓶頸,還看下回分解