|
最近一些朋友談到了系統(tǒng)性能分析的問(wèn)題。想分析一個(gè)基于Java的系統(tǒng)為什么會(huì)慢最好的方法就是使用Profiler. profiler的原理是通過(guò)一些驅(qū)動(dòng)和jvm綁定來(lái)讀取jvm的運(yùn)行時(shí)的情況,得到從類(lèi)的加載到執(zhí)行到結(jié)束整個(gè)過(guò)程中時(shí)間情況,從而知道到底那些函數(shù)的那些方法讓你的系統(tǒng)變的很慢。 比較好的開(kāi)源Profiler工具有Extensible Java Profiler和Eclipse Profiler Plugin 1 Extensible Java Profiler一般用來(lái)測(cè)試桌面應(yīng)用程序。 使用以下的方法來(lái)運(yùn)行一個(gè)程序 run-enabled application-main-class 程序結(jié)束以后會(huì)產(chǎn)生一個(gè)tracer-output.bin.gz 然后使用EJP Presenter打開(kāi)這個(gè)生成的文件。通過(guò)選擇自己感興趣的類(lèi),就可以查看到執(zhí)行過(guò)程中各個(gè)方法的調(diào)用時(shí)間了。 2 Eclipse Profiler Plugin通常用于測(cè)試WebApplication 以tomcat為例,在catalina.bat中加入以下配置 set _EXECJAVA=%_RUNJAVA% 來(lái)綁定jvm,這里的__A__表示啟動(dòng)類(lèi) __M__表示不監(jiān)視的類(lèi) 然后進(jìn)入eclipse,在run面板的profiler里面設(shè)置要要監(jiān)視的類(lèi),然后啟動(dòng)tomcat,運(yùn)行的結(jié)果可以在下面的面板中看到。包括執(zhí)行時(shí)間,調(diào)用率等等。 當(dāng)遇到性能瓶頸的時(shí)候,不妨自己動(dòng)手測(cè)試一下,說(shuō)不定能發(fā)現(xiàn)不少問(wèn)題。對(duì)代碼的重構(gòu)能產(chǎn)生幫助 |
|
|