[英]How to find elapsed time/benchmark a Java method/code using Eclipse?
我正在嘗試找到一種干凈的方法來查找經過的時間。 換句話說,我想找到給定代碼段執行所花費的時間。
我知道以下兩種方法:
1>
long start = System.nanoTime();
// Code to measure
long elapsedTime = System.nanoTime() - start;
2>
long start = System.currentTimeMillis();
// Code to measure
long elapsedTime = System.currentTimeMillis() - start;
但是從我必須用基准測試代碼填充原始代碼的角度來看,這兩種方法是骯臟的,之后基准測試結束時,我將不得不記住刪除代碼。
我正在尋找一種受Eclipse /任何其他IDE支持的更干凈的方法,在該方法中,我標記了要進行基准測試的代碼,就像我們指定斷點一樣,並且Eclipse會在到達那部分代碼時向我顯示經過的時間。
Eclipse /任何其他IDE中是否有可用的此類方法?
我推薦Perf4j perf4j.codehaus.org
在課程頂部設置一個字段
private static final boolean DEBUG_THIS=true;
然后,當您有要使用的行時,將其像這樣放置:
if (DEBUG_THIS){
Log.v("Tag","It took " + System.currentTimeMillis() - start + " ms");
// perhpas some other debug code
}
然后,當您感到厭倦或完成調試時,在頂部更改一行代碼
private static final boolean DEBUG_THIS=false;
您可以將所有調試代碼保留在原處,如果您再次需要它,則可以在任何地方使用,而在運行版本中則不花任何錢。
您可以為該代碼編寫一個JUnit測試。 Eclipse的JUnit插件將向您顯示運行測試所花費的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.