转载 

面试官:Spring Boot 中如何统计代码执行耗时

分类:spring,java    159人阅读    IT小君  2023-06-01 20:13

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

图片

开始  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():包含任务名称和任务耗时的实体类数组

好了,该篇就到这。

转载于:http://mp.weixin.qq.com/s?__biz=MzIwNjg4MzY4NA==&mid=2247518443&idx=2&sn=92acdf28385e7b0770482dad42f17f94&chksm=971816e0a06f9ff6deb83500dbe16bba70839e1fee1499102eac78ff323c35ae1a009f877c68#rd

点击广告,支持我们为你提供更好的服务

css+js实现的颜色渐变数字时钟动画特效

js+css3抽奖转盘旋转点餐代码

css鼠标跟随文字模糊特效

响应式太阳能能源公司网站模板

html5图标下拉搜索框自动匹配代码

小众时尚单品在线电子商务网站模板

html5 svg夜空中星星流星动画场景特效

响应式咖啡饮品宣传网站模板

响应式时尚单品在线商城网站模板

网页设计开发公司网站模板

HTML5现代家居装潢公司网站模板

HTML5 Canvas竖直流动线条背景动画特效

有机水果蔬菜HTML5网站模板

中小型创意设计服务公司网站模板

canvas炫酷鼠标移动文字粒子特效

现代时尚家具公司网站模板

jQuery右端悬浮带返回顶部特效

html5 canvas彩色碎片组合球形旋转动画特效

html5 canvas进度条圆环图表统计动画特效

HTML5数字产品服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务