Javaの処理時間を計測する方法

前回エントリ(2009-01-14 - greennoahの日記)ではArrayListとHashSetの処理にかかる時間を、単純にStartとEndの現在時刻を標準出力したものでしたが、Javaの処理時間を計測する場合はSystemクラスのcurrentTimeMillisメソッドを使用した方が良いと思います。

System#currentTimeMillisの使い方は簡単で、StartとEndの現在時刻をそれぞれ取得し、その差分を求めることで処理時間を表すことができます。

import java.util.ArrayList;

public class Sample {
    private static final int LOOP_COUNT = 10000;
   
    public static void main(final String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
       
        for(int i = 0; i < LOOP_COUNT; i++) list.add(i);

        long start = System.currentTimeMillis();
        for(int iList : list) if(list.contains(iList)){}
        long end = System.currentTimeMillis();
        System.out.println((end - start)  + "ms");
    }
} 

結果

690ms

注意
注意しないといけないことは、単位がミリ秒であることです。秒単位で出力する場合は、差分を1000で割る必要があります。

(終了時間 - 開始時間) / 1000