java中统计方法耗时的几种常用方法

129 篇文章 0 订阅
37 篇文章 0 订阅

在我们写代码的时候为了统计方法或者代码块的耗时,往往需要自己写代码来统计。下面是常用的几种。

 

1、使用System的自带时间:

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

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值