私はシンプルなクラスを持っています。メソッドの呼び出し時間を測定したいのですが、どうすればいいですか?それを達成するための一般的な方法を探していますので、より難しいクラスにも適用できます。あなたはどちらかのプロファイラ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);
}
}
"メソッド呼び出し時間"とはどういう意味ですか? –
pplの1つが示唆したように、CPUT時間でした。私はJavaの組み込みメソッドがあるかどうか疑問に思った。プロファイラのような複雑なものを探しているのではなく、私のコードで特別に使うことができるものを探しています。これは次のようなものです:long startTime = System.currentTimeMillis(); tommy.move(0,0); long endTime = System.currentTimeMillis(); System.out.println( "これは+(endTime - startTime)+"ミリ秒 "); //しかし、Javaメソッドを使って1行で行う方法はありますか? – aretai
@aretalこの例では、CPU時間ではなく経過時間を計測しています。明らかに、1行でこれを実行するのは難しいです。少なくとも、時計が何とか開始し停止するはずの行をマークする必要があるからです。アスペクトはコンパクトなソリューションを提供しますが、時間を測定するだけであれば、AOPを掘り起こすのは難しいでしょう。 –