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

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

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

前言

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

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

其實(shí)我個(gè)人感覺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í)候, 有沒有小伙伴的思維散發(fā)夠的,想著這spring 封裝的統(tǒng)計(jì)耗時(shí),自己是怎么實(shí)現(xiàn)的?

題外話:

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

其實(shí),這個(gè)很正常, 工作過程不是教導(dǎo)過程,你要自己有 縱向 挖掘 、橫向 散發(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í)偶爾也看到別人這么寫 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ù)名稱”):開始一個(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)文章

最新評(píng)論