いつも"System.currentTimeMillis()"を使って処理時間を計測してたけど、
Apache Commonsに"StopWatch"なるクラスがあるのを発見。
して使ってみる。
pom.xmlに依存ライブラリとして追加
今回はmavenで。
2.0以降ならStopWatchが使えるようです。
StopWatch以外にもいろいろ便利なので、利用すべし。
pom.xml
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
使ってみる
普通に計測
StopWatch stopWatch = new StopWatch();
// 計測開始
stopWatch.start();
Thread.sleep(500);
// 計測停止
stopWatch.stop();
// 経過時間出力
System.out.println(stopWatch.getTime()); // ⇒500
途中で止めて再開とか
StopWatch stopWatch = new StopWatch();
// 計測開始
stopWatch.start();
Thread.sleep(500);
// 計測中断
stopWatch.suspend();
Thread.sleep(500);
// 計測再開
stopWatch.resume();
Thread.sleep(500);
// 計測停止
stopWatch.stop();
// 経過時間出力
System.out.println(stopWatch.getTime()); // ⇒1000
おぉ。
ちなみに停止してからのーーー、開始
StopWatch stopWatch = new StopWatch();
// 計測開始
stopWatch.start();
Thread.sleep(500);
// 計測停止
stopWatch.stop();
// 計測開始
stopWatch.start(); // ここで例外!!!
Thread.sleep(500);
// 計測停止
stopWatch.stop();
// 経過時間出力
System.out.println(stopWatch.getTime());
これはまあ、やっぱりというか、一回リセットしろって怒られた。。。
Exception in thread "main" java.lang.IllegalStateException: Stopwatch must be reset before being restarted.
at org.apache.commons.lang3.time.StopWatch.start(StopWatch.java:179)