Perf4j使用一主要演示了性能監(jiān)控的日志直接打印在標(biāo)準(zhǔn)輸出流。那么使用二呢則主要來演示怎么來分析打印出來的日志文件。
由于我們還沒有跟log4j集成,日志文件打印在標(biāo)準(zhǔn)輸出流,我們需要把標(biāo)準(zhǔn)輸出流重定向到times.log文件中。重定向有兩種方式:直接copy到文件中,或者在eclipse里指定下輸出文件。我主要是用eclipse指定輸出文件。



然后運行代碼(Perf4j使用一的Example.java),控制臺會在第一句話中打出[Console output redirected to file:E:\yangpingyu\work\times.log],這樣運行的結(jié)果會同時打印在文件中和標(biāo)準(zhǔn)輸出中。
有了times.log,我們就可以對日志文件進(jìn)行分析,以找出有問題的代碼。
分析日志命令:
E:\yangpingyu\work>java -jar perf4j-0.9.16.jar times.log

以csv的格式來查看結(jié)果,命令如下:
java -jar perf4j-0.9.16.jar -f csv times.log

以上都是以文本的格式進(jìn)行輸出,但文本沒有圖表更具有表達(dá)力。所以把結(jié)果以圖表形式輸出是必不可少,幸好perf4j也支持,命令如下:
java -jar perf4j-0.9.16.jar --graph perfGraphs.html times.log
執(zhí)行命令后,在控制臺輸出相應(yīng)的統(tǒng)計信息,相應(yīng)的在磁盤上也生成了一個html,html里包含平均值圖表和tps圖表。
<html>
<head><title>Perf4J Performance Graphs</title></head>
<body>
<br/><br/><img src="http://chart.apis.google.com/chart?cht=lxy&chtt=Mean&chs=750x400&chxt=x,x,y&chd=t:0.0,50.0,100.0|56.3,60.1,6.0|0.0,50.0|88.5,94.5|50.0,100.0|43.2,7.2|0.0,50.0,100.0|71.8,57.4,8.0|0.0,50.0,100.0|100.0,61.2,59.6|0.0,50.0,100.0|63.9,62.0,18.7|0.0,50.0,100.0|34.4,72.1,30.1&chco=ff0000,00ff00,0000ff,00ffff,ff00ff,ffff00,000000&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0|d,0000ff,2,-1,5.0|d,00ffff,3,-1,5.0|d,ff00ff,4,-1,5.0|d,ffff00,5,-1,5.0|d,000000,6,-1,5.0&chdl=codeBlock1|codeBlock2.failure|codeBlock2.success|codeBlock3|codeBlock4|codeBlock5|codeBlock6&chxr=2,0,748.5&chxl=0:|18:12:00|18:12:30|18:13:00|1:|Time&chxp=0,0.0,50.0,100.0|1,50&chg=50.0,10"/>
<br/><br/><img src="http://chart.apis.google.com/chart?cht=lxy&chtt=TPS&chs=750x400&chxt=x,x,y&chd=t:0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0|27.3,63.6|50.0,100.0|36.4,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|36.4,90.9,9.1|0.0,50.0,100.0|27.3,100.0,9.1&chco=ff0000,00ff00,0000ff,00ffff,ff00ff,ffff00,000000&chm=d,ff0000,0,-1,5.0|d,00ff00,1,-1,5.0|d,0000ff,2,-1,5.0|d,00ffff,3,-1,5.0|d,ff00ff,4,-1,5.0|d,ffff00,5,-1,5.0|d,000000,6,-1,5.0&chdl=codeBlock1|codeBlock2.failure|codeBlock2.success|codeBlock3|codeBlock4|codeBlock5|codeBlock6&chxr=2,0,0.4&chxl=0:|18:12:00|18:12:30|18:13:00|1:|Time&chxp=0,0.0,50.0,100.0|1,50&chg=50.0,10"/>
</body></html>
以上是html的內(nèi)容,里面最重要的信息就是兩個img標(biāo)簽,里面具體的圖片是google chart api生成。可以打開html直接查看圖表。


如果想要看更詳細(xì)的參數(shù),可以使用—help來查看。java -jar perf4j-0.9.16.jar –help。