Springboot 统计 代码执行耗时时间 ,玩法多到眼花

前言

近日群里有萌新提到关于统计代码执行时间的事:

开始  System.currentTimeMillis()  减去  结束  System.currentTimeMillis()  等于  耗时   

其实我个人感觉OK的,就这样就蛮好的,很多项目都是这样用的。

简简单单的挺好。

这一篇就是 说点别的玩法,我很欣赏 这个小伙的求知欲, 举一反,多了解一点没毛病。

【关键】ps:   举一反三的 三 ,还有额外的含义,即 三连,点赞、收藏、关注。



正文

① StopWatch

第一种玩法,spring util 里面提供的 StopWatch

示例代码:

StopWatch stopWatch = new StopWatch();
stopWatch.start();
//doInsert();
//执行业务等
stopWatch.stop();
System.out.println(stopWatch.getTotalTimeMillis());

效果: 

②  System.nanoTime()

第二种玩法   System.nanoTime()

先不着急看怎么用, 我们看完第一种 StopWatch 的时候, 有没有小伙伴的思维散发够的,想着这spring 封装的统计耗时,自己是怎么实现的?

题外话:

一定要养成这种散发的思维, 很多兄弟朋友都跟我反馈过一些话题,就是说,项目里面没啥东西可学。 

其实,这个很正常, 工作过程不是教导过程,你要自己有 纵向 挖掘 横向 散发的 学习思维。 

直接点StopWatch  的源码看一眼, 哦,原理是用的  System.nanoTime() :

 System.nanoTime() 代码使用示例 :

        long startTime = System.nanoTime();
        doInsert();
        //执行业务
        long endTime = System.nanoTime();
        System.out.println((endTime - startTime));

效果 :

③ new Date ()

第三种玩法 ,平时偶尔也看到别人这么写 new Date 

示例代码:

        Date startDate = new Date();
       // doInsert();
       //执行业务等
        Date endDate = new Date();
        System.out.println((endDate.getTime() - startDate.getTime()));

效果:

④  System.currentTimeMillis() 

省略

ps: StopWatch 其实不仅仅是封了一下耗时统计,这样也太。。了  。

里面其实封装了蛮多其他关于时间统计的函数(感兴趣的可以单独去研究研究,特别是参考作者的封装思路 ):


void start(“任务名称”):开始一个任务名称的计时
void stop():停止当前任务的计时
boolean isRunning():是否正在计时某任务
long getTotalTimeMillis():所有任务的总体执行时间(毫秒单位)
double getTotalTimeSeconds():所有任务的总时间(以秒为单位)
long getLastTaskTimeMillis():上一个任务的耗时(毫秒单位)
int getTaskCount():定时任务的数量
String prettyPrint():优美地打印所有任务的详细耗时情况
StopWatch.TaskInfo[] getTaskInfo():包含任务名称和任务耗时的实体类数组
 

好了,该篇就到这。

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值