我有一個簡單的類,我想測量方法調用時間,我該怎麼做?尋找通用的方法來實現這一點,所以我可以將它應用於更困難的類。謝謝java我如何測量方法調用時間?
import java.io.*;
import java.util.*;
public class Turtle {
private String name;
private Formatter f;
public Turtle(String name, Formatter f) {
this.name = name;
this.f = f;
}
public void move(int x, int y) {
f.format("%s The Turtle is at (%d,%d)\n", name, x, y);
}
public static void main(String[] args) {
PrintStream outAlias = System.err;
Turtle tommy = new Turtle("Tommy",
new Formatter(System.out));
Turtle terry = new Turtle("Terry",
new Formatter(outAlias));
tommy.move(0,0);
terry.move(4,8);
tommy.move(3,4);
terry.move(2,5);
tommy.move(3,3);
terry.move(3,3);
}
}
你是什麼意思,「方法通話時間」? – 2012-02-25 13:22:20
由於其中一個建議它是CPUT時間。我想知道是否有任何Java內置方法。不尋找任何複雜的,如探查器,但我可以在我的代碼中使用ad hoc。像這樣:long startTime = System.currentTimeMillis(); tommy.move(0,0); long endTime = System.currentTimeMillis(); System.out.println(「That took」+(endTime - startTime)+「milliseconds」); //但有辦法用一些Java方法在一行中完成它? – aretai 2012-02-25 14:19:25
@aretal您的示例度量值是經過的(牆)時間,而不是CPU時間。顯然這很難在一條線上,因爲你至少需要標記時鐘應該以何種方式開始和停止的線。方面可以給你一個緊湊的解決方案,但如果你想要測量時間,那麼挖掘AOP可能是矯枉過正。 – 2012-02-26 17:57:34