この記事の目的
プログラムを書いていると、プログラムの実行時間を測定したいことは度々あります。そんなときはライブラリGuavaのStopwatchクラスを使うと便利ですのでご紹介します。
本記事で使用するGuavaのバージョンは、2022年5月リリースの31.1-jreです。
サンプルプログラム
Stopwatchクラスは下記の手順で使用します。
- Stopwatch#createStartedでストップウォッチを取得して計測を開始します。
- Stopwatch#stopでストップウォッチを止めます。このメソッドは返り値としてStopwatchのインタンスが返り、Stopwatch#toStringで計測した時間を文字列として取得できます。
public static void main(String[] args) throws InterruptedException {
// 0ミリ秒待つ
outputWaitTime(0);
// 100ミリ秒待つ
outputWaitTime(100);
// 2000ミリ秒(=2秒)待つ
outputWaitTime(2_000);
}
private static void outputWaitTime(long millis) throws InterruptedException {
Stopwatch stopwatch = Stopwatch.createStarted();
Thread.sleep(millis);
System.out.println(stopwatch.stop());
}
実行結果
下記のように出力されます。便利なポイントは、測定した時間の大きさに応じて適切な単位(今回の場合μs、ms、s)を選んで出力してくれることです。
18.10 μs 102.6 ms 2.004 s
Stopwatch#toStringのコードを読むと、時間の単位として下記があることが分かります。
ns / μs / ms / s / min / h / d


コメント