Java Date Timeチュートリアル-時間測定
3311 ワード
Javaでは
変数
繰り返し操作
Timerクラス
前述の計算方法はかなり煩雑で退屈であり、
System.currentTimeMillis()
で時間を測るのが一番便利です.いくつかの操作の前に時間を取得し、これらの操作の後に時間を測定し、時間差を算出します.次に例を示します.1
long
startTime = System.currentTimeMillis();
2
callOperationToTime();
3
long
endTime = System.currentTimeMillis();
4
long
totalTime = endTime - startTime;
変数
totalTime
は、callOperationToTime()
メソッドを実行するのに必要なすべての時間を含むようになる.繰り返し操作
System.currentTimeMillis()
は正確な時間を返さないため、測定操作を一度だけ実行するのは良いアイデアです.10回、100回、1000回、さらに多いかもしれません.これにより、ミリ秒ごとに変化するわけではない大きな粒度時間値による非正確な時間は安定化する.(原文:That way inaccuracy caused by large grained time values(values that does not change every millisecond)is leveled out.)測定操作を何度も繰り返し実行するもう一つの良い理由は、Java
仮想マシンが測定操作コードのclasses
をロードし、すぐにコンパイルすることができ、最適化できるかもしれないからです.(注:JVM
のJIT
は、バイトコードでよく使われるセグメントをマシンコードにコンパイルし、パフォーマンスを向上させます.JIT
について良い記事があります.アドレスはこちらです)Timerクラス
前述の計算方法はかなり煩雑で退屈であり、
Timer
クラスにカプセル化することができます.以下は大まかな例です.01
public
class
Timer {
02
03
private
long
startTime =
0
;
04
private
long
endTime =
0
;
05
06
public
void
start(){
07
this
.startTime = System.currentTimeMillis();
08
}
09
10
public
void
end() {
11
this
.endTime = System.currentTimeMillis();
12
}
13
14
public
long
getStartTime() {
15
return
this
.startTime;
16
}
17
18
public
long
getEndTime() {
19
return
this
.endTime;
20
}
21
22
public
long
getTotalTime() {
23
return
this
.endTime -
this
.startTime;
24
}
25
}
Timer
クラスの使用方法の例を次に示します.1
Timer timer =
new
Timer();
2
timer.start();
3
callOperationToTime();
4
timer.end();
5
long
totalTime = timer.getTotalTime();