通過Profiling工具看結(jié)果:方法 運行時間testOne 0.055764testTwo 0.043821testThres 0.132451也就是說,jdk 1.5的for/each循環(huán)是最慢的。有點不相信。開頭覺得是因為賦值造成的,但后來在另兩個方法里面加上賦值語句,依然是for/each最慢。比較有趣的結(jié)果。從代碼清晰角度,用for/each消耗多一點點時間似乎也無所謂。但是,另兩種代碼也不見得“不清晰”,呵呵。看著辦了。
本文只作很簡要介紹,可視作備忘參考。TPTP是eclipse官方的profiling插件,初步使用下感覺功能強大。下載安裝: 在http://www.eclipse.org/tptp/下載,我選擇All-Runtime,然后像其它插件一樣解壓到eclipse的目錄,然后允許eclipse -clean來刷新一把。使用: 常用的profiling簡單來講就對程序運行進(jìn)行記錄,然后從數(shù)據(jù)中分析哪些方法運行時間長,哪些對象吃內(nèi)存多,哪些類的實例多等等。一個比較好的使用入門sample在這里: http://www.eclipse.org/tptp/home/documents/tutorials/profilingtool/profilingexample_32.html 我就不羅嗦了。值得多講的是Remote Profiling,就是遠(yuǎn)程剖析。實現(xiàn)的原理是在遠(yuǎn)程機器上運行一個代理進(jìn)程,要被遠(yuǎn)程剖析的程序或者Application Server啟動的時候加一個JVM參數(shù)來識別這個代理進(jìn)程,兩者相互作用,代理就可以把收集到的信息發(fā)給在遠(yuǎn)程的一方(就是運行著eclipse的一方)。因此要實現(xiàn)Remote Profiling,還要在目標(biāo)機器上裝一個agent。 -->下載安裝:http://www.eclipse.org/tptp/home/downloads/drops/TPTP-4.0.1.html 選擇對應(yīng)操作系統(tǒng)的Agent Controller下載,選擇Runtime即可。下載后,閱讀依照getting_started.html的說明來安裝即可,這里簡述一下:1、 把它的bin目錄放到PATH里面2、 運行一下SetConfig來設(shè)置參數(shù),注意如果想讓除本地localhost意外所以機器都訪問的話,要注意設(shè)置Network Access Mode,默認(rèn)是localhost的。3、 運行RAStart來啟動代理(Linux下)4、 服務(wù)器端程序(例如tomcat)啟動的JVM參數(shù)里面加入-XrunpiAgent:server=enabled即可(還有其它參數(shù)值參見文檔)5、 然后就可以在遠(yuǎn)程用eclipse來啟動一個Profiling進(jìn)程來attach到這個agent controller了。效果和在eclipse里面直接profile應(yīng)用程序一樣。