JAvaでの統計方法の時間のかかるいくつかの一般的な方法


私たちがコードを書くとき、統計方法やコードブロックの消費時間のために、自分でコードを書いて統計する必要があることが多い.以下はよく使われるいくつかの種類です.
 
1、システムを使用する時間:
long start = System.currentTimeMillis();
TimeUnit.SECONDS.sleep(3L);
System.out.println("it consumes " +(System.currentTimeMillis() - start) + "ms");
// output :  consumes 3004ms

利点:システムが持参し、統計時間単位はミリ秒です.(ナノ秒バージョンもあります.System.nanoTime()
欠点:コードを再利用することはできません.毎回startの時間起点を書き直す必要があります. 
 
2、使用 org.apache.commons.lang.time.StopWatch
public static void testStopWatch() throws InterruptedException {
     System.out.println("SLAMonitorThread.main() start");
     StopWatch sw = new StopWatch();
     sw.start();
     TimeUnit.SECONDS.sleep(1L);
     sw.split();
     System.out.println(
             "SLAMonitorThread.main() end. split:" + sw.getSplitTime() + ", " + sw.toSplitString());
     TimeUnit.SECONDS.sleep(1L);
     sw.split();
     System.out.println(
             "SLAMonitorThread.main() end. split:" + sw.getSplitTime() + ", " + sw.toSplitString());
     TimeUnit.SECONDS.sleep(1L);
     sw.split();
     System.out.println(
             "SLAMonitorThread.main() end. split:" + sw.getSplitTime() + ", " + sw.toSplitString());
     TimeUnit.SECONDS.sleep(1L);
     System.out.println("SLAMonitorThread.main() end. end:" + sw.getTime() + ", " + sw.toString());

     long start = System.currentTimeMillis();
     TimeUnit.SECONDS.sleep(1L);
     System.out.println("it consumes " + (System.currentTimeMillis() - start) + "ms");
     /*
      * SLAMonitorThread.main() start
      * SLAMonitorThread.main() end. split:1005, 0:00:01.005
      * SLAMonitorThread.main() end. split:2016, 0:00:02.016
      * SLAMonitorThread.main() end. split:3021, 0:00:03.021
      * SLAMonitorThread.main() end. end:4025, 0:00:04.025
      * it consumes 1004ms
      */
}

利点:複数回使用でき、splitで複数回使用できる.
欠点:追加のcommonsに依存するjarが必要
 
3、guavaの StopWatch
および org.apache.commons.lang.time.StopWatchの使い方は似ています.
 
4、非常に使いやすい計算時間のツール類:
org.apache.commons.lang.time.DurationFormatUtils.java