Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

いつも"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)
mashandroom
会社外活動・コミュニティとして、ハッカソンや各種イベントのボランティアなどに参加。ただただ自分たちが楽しみ、結果周りの人が喜んでくれるようなアウトプットを目指しています。創造せよ!頭にキノコが生えるまで
https://mashandroom.org
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away