开发者

Springboot之如何统计代码执行耗时时间

目录
  • 前言
  • 正文
    • ① StopWatch
    • ②  System.nanoTime()
    • ③ new Date ()
    • ④  System.currentTimeMillis() 
  • 总结

    前言

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

    Springboot之如何统计代码执行耗时时间

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

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

    简简单单的挺好。

    Springboot之如何统计代码执行耗时时间

    正文

    ① StopWatch

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

    示例代码:

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

    效果: 

    Springboot之如何统计代码执行耗时时间

    ②  System.nanoTime()

    第二种玩法   System.nanoTime()

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

    题外话:

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

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

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

    Springboot之如何统计代码执行耗时时间

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

            long startTime = System.nanoTime();
            doInsert();
            //执行业务
            long endTime = System.nanoTime开发者_C学习();
            System.out.println((endTime - startTime));

    效果 :

    Springboot之如何统计代码执行耗时时间

    ③ new Date ()

    第三种玩法 ,平时偶尔也看到别人这么写 new Date&nbs编程客栈p;

    示例代码:

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

    效果:

    Springboot之如何统计代码执行耗时时间

    ④  System.currentTimeMillis() 

    省略

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

    js

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

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

    总结

    好了,该篇就到这里了~

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜