LoginSignup
22
15

More than 5 years have passed since last update.

時間計測にApacheCommonsのStopWatchを使ってみる

Posted at

いつも"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)
22
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
15