Javaプログラムの実行時間を計測するJavaTips 〜Javaプログラミング編

» 2004年05月25日 10時00分 公開
[佐藤匡剛@IT]

 プログラムのパフォーマンスを調べるときなど、プログラムの実行にどれくらい時間がかかったのかを計測したいときがあります。LinuxなどのUNIX系OSなら、timeコマンドを利用すればプログラムの実行時間を計測することができます。しかし、timeコマンドでは、Java仮想マシンの起動時間も含めたプログラム全体の実行時間を計測することしかできません。

 JavaのコアAPIにあるjava.lang.SystemクラスのcurrentTimeMillis()メソッドは、本来は現在の時間を返すためのメソッドですが、このメソッドを使ってプログラムの実行時間を計測することもできます。この方法なら、Java仮想マシン起動後の純粋なプログラムの実行時間だけを計測することができます。また、この方法を応用すれば、あるメソッドの実行にかかっている時間だけを調べることもできるので、より詳細な調査などに利用することができます。

 currentTimeMillis()メソッドを用いた時間計測のサンプルコードは、以下のようになります。赤字部分のコードが時間計測のために追加するコードで、時間計測の対象となるのはこの部分で挟まれたコードの処理になります。

Timing.java
public class Timing {
  public Timing() {}
  public void doSomething() {
    // なにか作業をする
    // ここでは、単純に3秒間スリープするだけ
    try {
      Thread.sleep(3000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) {
    long start = System.currentTimeMillis();
    Timing timing = new Timing();
    timing.doSomething();    // メソッドを呼び出して、何か時間のかかる作業をする
    long stop = System.currentTimeMillis();
    System.out.println("実行にかかった時間は " + (stop - start) + " ミリ秒です。");
  }
}


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。