当前位置:   article > 正文

Springboot 统计 代码执行耗时时间 ,玩法多到眼花_springboot 接口耗时监控

springboot 接口耗时监控

前言

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

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

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

简简单单的挺好。

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

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



正文

① StopWatch

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

示例代码:

  1. StopWatch stopWatch = new StopWatch();
  2. stopWatch.start();
  3. //doInsert();
  4. //执行业务等
  5. stopWatch.stop();
  6. System.out.println(stopWatch.getTotalTimeMillis());

效果: 

②  System.nanoTime()

第二种玩法   System.nanoTime()

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

题外话:

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

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

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

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

  1. long startTime = System.nanoTime();
  2. doInsert();
  3. //执行业务
  4. long endTime = System.nanoTime();
  5. System.out.println((endTime - startTime));

效果 :

③ new Date ()

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

示例代码:

  1. Date startDate = new Date();
  2. // doInsert();
  3. //执行业务等
  4. Date endDate = new Date();
  5. 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():包含任务名称和任务耗时的实体类数组
 

好了,该篇就到这。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50090
推荐阅读
相关标签
  

闽ICP备14008679号