服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Spring Boot 中如何统计代码执行耗时

日期: 来源:SpringForAll收集编辑:
关注我,回复关键字“spring”
免费领取Spring学习资料

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

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

好了,该篇就到这。

感谢阅读,希望对你有所帮助 :)   
来源:blog.csdn.net/qq_35387940/article/details/128444074


END



Spring Boot + OpenAI 生成图像
Spring Boot 应用的新命令行界面:Just
Spring Boot 整合 Groovy 脚本,实现动态编程
SSO 单点登录和 OAuth2.0 的区别和理解

高质量交流群,关注:SpringForAll,回复关键词:加群

相关阅读

  • 神木直聘221期丨最高8000元/月!文员招聘专场

  • 神木市汉乾矿山机电设备有限公司聘文员3000-5000元/月工作要求:1、主要负责公司招标文件的编辑及其他领导安排的任务;2、缴纳五险一金,包食宿。查看详情公司地址:神木市第二新村
  • Spring Boot 整合轻量级日志框架tinylog

  • tinylog(https://tinylog.org/v2/),与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案。它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系。
  • 消费下降,你只吃得起“穷鬼套餐”了吗?

  • *本文为「三联生活周刊」原创内容文 | 邢海洋每年的春节时间都不一样,有时候落在1月,有时候落在2月,还有横跨1、2月间的。比较开年前两个月的经济数字,最好是综合起来比较,而不是
  • 甘肃省应急管理厅来我省调研交流

  • 3月20日至21日,甘肃省应急管理厅副厅长尚科锋一行8人来我省调研交流,重点围绕应急管理数字化改革、全覆盖责任体系、基层应急体系建设等相关工作进行交流。省应急管理厅总工程
  • 【科普】游乐设施安全风险提示

  • 游乐场中的娱乐设施属于特种设备具有较大的安全隐患一旦发生事故后果不堪设想大家愉快玩耍的同时也别忘了安全防护↓↓↓来源:国家应急广播
  • 太仓教育,未来可期!

  • 20世纪90年代初太仓普及九年制义务教育,是省内较早完成“普九”任务的县市。1998年教育现代化工程启动。至2000年全市所有区(镇)均建成江苏省实施教育现代化工程先进镇。2002年

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 神木直聘221期丨最高8000元/月!文员招聘专场

  • 神木市汉乾矿山机电设备有限公司聘文员3000-5000元/月工作要求:1、主要负责公司招标文件的编辑及其他领导安排的任务;2、缴纳五险一金,包食宿。查看详情公司地址:神木市第二新村
  • Spring Boot 整合轻量级日志框架tinylog

  • tinylog(https://tinylog.org/v2/),与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案。它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系。
  • Spring Boot 中如何统计代码执行耗时

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。近日群里有萌新提到关于统计代码执行时间的事:开始 System.currentTimeMillis() 减去 结束 System.currentTimeMilli
  • 为什么 Spring Boot 构造的jar包能直接运行?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。Spring Boot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即
  • 全国重点公路项目建设加快推进

  • 随着世界在建最长高速公路隧道——乌尉高速公路天山胜利隧道进口端左右洞开年第一声炮响,正式按下项目今年施工大干的“开启键”。在深中通道伶仃洋大桥270米高的桥塔上,建设