JAvaでの統計方法の時間のかかるいくつかの一般的な方法
私たちがコードを書くとき、統計方法やコードブロックの消費時間のために、自分でコードを書いて統計する必要があることが多い.以下はよく使われるいくつかの種類です.
1、システムを使用する時間:
利点:システムが持参し、統計時間単位はミリ秒です.(ナノ秒バージョンもあります.System.nanoTime()
欠点:コードを再利用することはできません.毎回startの時間起点を書き直す必要があります.
2、使用 org.apache.commons.lang.time.StopWatch
利点:複数回使用でき、splitで複数回使用できる.
欠点:追加のcommonsに依存するjarが必要
3、guavaの StopWatch
および org.apache.commons.lang.time.StopWatchの使い方は似ています.
4、非常に使いやすい計算時間のツール類:
org.apache.commons.lang.time.DurationFormatUtils.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