欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot之如何統(tǒng)計(jì)代碼執(zhí)行耗時(shí)時(shí)間

 更新時(shí)間:2023年03月16日 15:48:20   作者:小目標(biāo)青年  
這篇文章主要介紹了Springboot之如何統(tǒng)計(jì)代碼執(zhí)行耗時(shí)時(shí)間問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

近日群里有萌新提到關(guān)于統(tǒng)計(jì)代碼執(zhí)行時(shí)間的事:

開(kāi)始  System.currentTimeMillis()  減去  結(jié)束  System.currentTimeMillis()  等于  耗時(shí)   

其實(shí)我個(gè)人感覺(jué)OK的,就這樣就蠻好的,很多項(xiàng)目都是這樣用的。

簡(jiǎn)簡(jiǎn)單單的挺好。

正文

① StopWatch

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

示例代碼:

StopWatch stopWatch = new StopWatch();
stopWatch.start();
//doInsert();
//執(zhí)行業(yè)務(wù)等
stopWatch.stop();
System.out.println(stopWatch.getTotalTimeMillis());

效果: 

②  System.nanoTime()

第二種玩法   System.nanoTime()

先不著急看怎么用, 我們看完第一種 StopWatch 的時(shí)候, 有沒(méi)有小伙伴的思維散發(fā)夠的,想著這spring 封裝的統(tǒng)計(jì)耗時(shí),自己是怎么實(shí)現(xiàn)的?

題外話:

一定要養(yǎng)成這種散發(fā)的思維, 很多兄弟朋友都跟我反饋過(guò)一些話題,就是說(shuō),項(xiàng)目里面沒(méi)啥東西可學(xué)。 

其實(shí),這個(gè)很正常, 工作過(guò)程不是教導(dǎo)過(guò)程,你要自己有 縱向 挖掘 橫向 散發(fā)的 學(xué)習(xí)思維。 

直接點(diǎn)StopWatch  的源碼看一眼, 哦,原理是用的  System.nanoTime() :

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

        long startTime = System.nanoTime();
        doInsert();
        //執(zhí)行業(yè)務(wù)
        long endTime = System.nanoTime();
        System.out.println((endTime - startTime));

效果 :

③ new Date ()

第三種玩法 ,平時(shí)偶爾也看到別人這么寫(xiě) new Date 

示例代碼:

        Date startDate = new Date();
       // doInsert();
       //執(zhí)行業(yè)務(wù)等
        Date endDate = new Date();
        System.out.println((endDate.getTime() - startDate.getTime()));

效果:

④  System.currentTimeMillis() 

省略

ps: StopWatch 其實(shí)不僅僅是封了一下耗時(shí)統(tǒng)計(jì),這樣也太。。了  。

里面其實(shí)封裝了蠻多其他關(guān)于時(shí)間統(tǒng)計(jì)的函數(shù)(感興趣的可以單獨(dú)去研究研究,特別是參考作者的封裝思路 ):

  • void start(“任務(wù)名稱”):開(kāi)始一個(gè)任務(wù)名稱的計(jì)時(shí)
  • void stop():停止當(dāng)前任務(wù)的計(jì)時(shí)
  • boolean isRunning():是否正在計(jì)時(shí)某任務(wù)
  • long getTotalTimeMillis():所有任務(wù)的總體執(zhí)行時(shí)間(毫秒單位)
  • double getTotalTimeSeconds():所有任務(wù)的總時(shí)間(以秒為單位)
  • long getLastTaskTimeMillis():上一個(gè)任務(wù)的耗時(shí)(毫秒單位)
  • int getTaskCount():定時(shí)任務(wù)的數(shù)量
  • String prettyPrint():優(yōu)美地打印所有任務(wù)的詳細(xì)耗時(shí)情況
  • StopWatch.TaskInfo[] getTaskInfo():包含任務(wù)名稱和任務(wù)耗時(shí)的實(shí)體類數(shù)組

總結(jié)

好了,該篇就到這里了~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JVM分析之類加載機(jī)制詳解

    JVM分析之類加載機(jī)制詳解

    JVM內(nèi)部架構(gòu)包含類加載器、內(nèi)存區(qū)域、執(zhí)行引擎等。日常開(kāi)發(fā)中,我們編寫(xiě)的java文件被編譯成class文件后,jvm會(huì)進(jìn)行加載并運(yùn)行使用類。本次將對(duì)JVM加載部分進(jìn)行分析,便于大家了解并掌握加載機(jī)制
    2022-08-08
  • Java Calendar類使用總結(jié)及使用實(shí)例

    Java Calendar類使用總結(jié)及使用實(shí)例

    這篇文章主要介紹了Java Calendar類使用總結(jié)及使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java里的static import使用小結(jié)

    Java里的static import使用小結(jié)

    這篇文章主要介紹了Java里的static import使用小結(jié),本文給出了一些使用示例,并總結(jié)了一些使用特性,需要的朋友可以參考下
    2015-06-06
  • Jpa 實(shí)現(xiàn)自動(dòng)更新表中的創(chuàng)建日期和修改時(shí)間

    Jpa 實(shí)現(xiàn)自動(dòng)更新表中的創(chuàng)建日期和修改時(shí)間

    這篇文章主要介紹了Jpa 實(shí)現(xiàn)自動(dòng)更新表中的創(chuàng)建日期和修改時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見(jiàn)的兩種方式

    Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見(jiàn)的兩種方式

    List是Java中比較常用的集合類,指一系列存儲(chǔ)數(shù)據(jù)的接口和類,可以解決復(fù)雜的數(shù)據(jù)存儲(chǔ)問(wèn)題,這篇文章主要給大家介紹了關(guān)于Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見(jiàn)的兩種方式,需要的朋友可以參考下
    2023-12-12
  • JDK1.7 Paths,Files類實(shí)現(xiàn)文件夾的復(fù)制與刪除的實(shí)例

    JDK1.7 Paths,Files類實(shí)現(xiàn)文件夾的復(fù)制與刪除的實(shí)例

    下面小編就為大家分享一篇JDK1.7 Paths,Files類實(shí)現(xiàn)文件夾的復(fù)制與刪除的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。以前跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    這篇文章主要介紹了Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Jmeter?BeanShell?內(nèi)置變量vars、props、prev的使用詳解

    Jmeter?BeanShell?內(nèi)置變量vars、props、prev的使用詳解

    這篇文章主要介紹了Jmeter?BeanShell?內(nèi)置變量vars、props、prev的使用?,文中給大家介紹了Jmeter中關(guān)于BeanShell的相關(guān)知識(shí),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • SpringBoot多級(jí)緩存實(shí)現(xiàn)方案總結(jié)

    SpringBoot多級(jí)緩存實(shí)現(xiàn)方案總結(jié)

    所謂多級(jí)緩存,是指在整個(gè)系統(tǒng)架構(gòu)的不同系統(tǒng)層面進(jìn)行數(shù)據(jù)緩存,以提升訪問(wèn)速度,多級(jí)緩存就是為了解決項(xiàng)目服務(wù)中單一緩存使用不足的缺點(diǎn),本文我們將給大家總結(jié)了SpringBoot多級(jí)緩存實(shí)現(xiàn)方案,需要的朋友可以參考下
    2023-08-08
  • 基于SpringBoot與Mybatis實(shí)現(xiàn)SpringMVC Web項(xiàng)目

    基于SpringBoot與Mybatis實(shí)現(xiàn)SpringMVC Web項(xiàng)目

    這篇文章主要介紹了基于SpringBoot與Mybatis實(shí)現(xiàn)SpringMVC Web項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論