※このページではアフィリエイト広告を紹介しています

気軽にプログラムの実行時間を計測する ~Guava~

Java小ネタ
この記事は約2分で読めます。
広告

この記事の目的

プログラムを書いていると、プログラムの実行時間を測定したいことは度々あります。そんなときはライブラリGuavaのStopwatchクラスを使うと便利ですのでご紹介します。

本記事で使用するGuavaのバージョンは、2022年5月リリースの31.1-jreです。

サンプルプログラム

Stopwatchクラスは下記の手順で使用します。

  1. Stopwatch#createStartedでストップウォッチを取得して計測を開始します。
  2. 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

コメント

タイトルとURLをコピーしました