この記事の目的
プログラムを書いていると、プログラムの実行時間を測定したいことは度々あります。そんなときはライブラリ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
コメント