読者です 読者をやめる 読者になる 読者になる

Guava の Stopwatch で時間を計測する

Java

Guava の Stopwatch を使ってサンプルコードを書いてみた.

よくある System.currentTimeMillis() を使わなくて済むので,コード的にも目的が明らかで見通しが良くなる.

Stopwatch (Guava: Google Core Libraries for Java 18.0 API)

サンプルコード

OnYourMark っていうクラス名には特に意味はなくて,世界陸上とかでスタートするときに聞くのでそれをクラス名にしてみただけw

package com.kakakakakku;

import com.google.common.base.Stopwatch;

import java.util.concurrent.TimeUnit;

public class OnYourMark {
    public static void main(String[] args) throws InterruptedException {

        // createUnstarted() を使うと計測開始時刻を制御することもできる
        Stopwatch sw = Stopwatch.createStarted();

        while(true) {
            System.out.println(String.valueOf(sw.elapsed(TimeUnit.SECONDS)) + "秒経過");
            Thread.sleep(5000);
            if (sw.elapsed(TimeUnit.SECONDS) > 60) {
                sw.stop();
                sw.reset();
                System.out.println("停止します");
                break;
            }
        }

    }
}

実行結果

0秒経過
5秒経過
10秒経過
15秒経過
20秒経過
25秒経過
30秒経過
35秒経過
40秒経過
45秒経過
50秒経過
55秒経過
60秒経過
停止します