最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring計(jì)時(shí)器StopWatch的具體使用

 更新時(shí)間:2023年06月28日 15:04:37   作者:騎個(gè)小蝸牛  
本文主要介紹了Spring計(jì)時(shí)器StopWatch的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

StopWatch介紹

StopWatch類是Spring框架中用于測量代碼執(zhí)行時(shí)間的工具類,它提供了一系列屬性來記錄監(jiān)測信息。

本文基于spring-boot-starter-web:2.2.2RELEASE版本。

源碼:

public class StopWatch {
? ? private final String id;
? ? private boolean keepTaskList = true;
? ? private final List<StopWatch.TaskInfo> taskList = new LinkedList<>();
? ? private long startTimeMillis;
? ? @Nullable
? ? private String currentTaskName;
? ? @Nullable
? ? private StopWatch.TaskInfo lastTaskInfo;
? ? private int taskCount;
? ? private long totalTimeMillis;
?? ?......方法略
?? ?public static final class TaskInfo {
?? ??? ?private final String taskName;
?? ??? ?private final long timeNanos;
?? ?}
}

StopWatch屬性詳解

屬性描述
id表示該StopWatch對(duì)象的唯一標(biāo)識(shí)符,可以通過構(gòu)造函數(shù)傳入。
keepTaskList表示是否保留所有記錄的監(jiān)測任務(wù),,默認(rèn)為true。如果該值為true,則程序可以通過getTaskInfo()方法獲取所有監(jiān)測任務(wù)的詳細(xì)信息,否則僅可以獲取最后一次監(jiān)測任務(wù)的詳細(xì)信息。
taskList用于記錄所有的監(jiān)測任務(wù)信息,只有keepTaskList屬性值為true時(shí)才記錄任務(wù)信息,該值在stop()方法調(diào)用時(shí)添加一條任務(wù)信息。
currentTaskName表示當(dāng)前正在執(zhí)行的監(jiān)測任務(wù)名稱,該值在start()方法調(diào)用時(shí)設(shè)置。
lastTaskInfo表示最后一次執(zhí)行的監(jiān)測任務(wù)的詳細(xì)信息,包括任務(wù)名稱、執(zhí)行時(shí)間等,該值在stop()方法調(diào)用時(shí)設(shè)置。
taskCount表示執(zhí)行的監(jiān)測任務(wù)數(shù)目,該值在stop()方法調(diào)用時(shí)值+1。
totalTimeMillis表示該StopWatch對(duì)象記錄的所有監(jiān)測任務(wù)的總執(zhí)行時(shí)間,單位為毫秒,該值在stop()方法調(diào)用時(shí)值+當(dāng)前任務(wù)的執(zhí)行時(shí)間。
TaskInfo.taskName任務(wù)名稱。
TaskInfo.timeNanos任務(wù)執(zhí)行時(shí)間。

StopWatch方法詳解

方法描述
void setKeepTaskList(boolean keepTaskList)設(shè)置是否保留所有記錄的監(jiān)測任務(wù),默認(rèn)為true。如果該值為true,則程序可以通過getTaskInfo()方法獲取所有監(jiān)測任務(wù)的詳細(xì)信息。
void start()開始一個(gè)新的監(jiān)測任務(wù),可設(shè)置任務(wù)名稱。記錄當(dāng)前時(shí)間和任務(wù)名稱。
void stop()結(jié)束當(dāng)前監(jiān)測任務(wù)。記錄任務(wù)執(zhí)行時(shí)間,更新總執(zhí)行時(shí)間和任務(wù)數(shù)量。
String getId()獲取唯一標(biāo)識(shí)符。
String currentTaskName()獲取當(dāng)前正在運(yùn)行的監(jiān)測任務(wù)名稱。
TaskInfo getLastTaskInfo()獲取最后一次執(zhí)行的監(jiān)測任務(wù)的詳細(xì)信息,包括任務(wù)名稱、開始時(shí)間、結(jié)束時(shí)間和執(zhí)行時(shí)間等。
String getLastTaskName()獲取最后一次執(zhí)行的監(jiān)測任務(wù)的任務(wù)名稱
long getLastTaskTimeMillis()獲取最后一次執(zhí)行的監(jiān)測任務(wù)的執(zhí)行時(shí)間,單位毫秒
long getLastTaskTimeNanos()獲取最后一次執(zhí)行的監(jiān)測任務(wù)的執(zhí)行時(shí)間,單位納秒
int getTaskCount()獲取已執(zhí)行的監(jiān)測任務(wù)數(shù)目
TaskInfo[] getTaskInfo()獲取所有監(jiān)測任務(wù)信息,僅在keepTaskList屬性為true時(shí)有效。
double getTotalTimeSeconds()獲取所有監(jiān)測任務(wù)的總執(zhí)行時(shí)間,單位為秒。
long getTotalTimeMillis()獲取所有監(jiān)測任務(wù)的總執(zhí)行時(shí)間,單位為毫秒。
long getTotalTimeNanos()獲取所有監(jiān)測任務(wù)的總執(zhí)行時(shí)間,單位為納秒。
boolean isRunning()判斷當(dāng)前StopWatch對(duì)象是否正在執(zhí)行監(jiān)測任務(wù)。
String shortSummary()以字符串形式輸出所有監(jiān)測任務(wù)的簡要信息,包括任務(wù)數(shù)目和總執(zhí)行時(shí)間。
String prettyPrint()以字符串形式輸出所有監(jiān)測任務(wù)的執(zhí)行時(shí)間和詳細(xì)信息。

StopWatch使用示例

? ? public static void main(String[] args) throws InterruptedException {
? ? ? ? StopWatch stopWatch = new StopWatch();
? ? ? ? stopWatch.start("task1");
? ? ? ? System.out.println("當(dāng)前任務(wù)名稱:"+stopWatch.currentTaskName());
? ? ? ? Thread.sleep(1000);
? ? ? ? stopWatch.stop();
? ? ? ? System.out.println("task1耗時(shí)毫秒:"+stopWatch.getLastTaskTimeMillis());
? ? ? ? stopWatch.start("task2");
? ? ? ? System.out.println("當(dāng)前任務(wù)名稱:"+stopWatch.currentTaskName());
? ? ? ? Thread.sleep(2000);
? ? ? ? stopWatch.stop();
? ? ? ? System.out.println("task2耗時(shí)毫秒:"+stopWatch.getLastTaskTimeMillis());
? ? ? ? System.out.println("總?cè)蝿?wù)數(shù):"+stopWatch.getTaskCount());
? ? ? ? System.out.println("總耗時(shí)毫秒:"+stopWatch.getTotalTimeMillis());
? ? ? ? System.out.println("所有任務(wù)簡要信息:\n"+stopWatch.shortSummary());
? ? ? ? System.out.println("所有任務(wù)詳細(xì)信息:\n"+stopWatch.prettyPrint());
? ? }

輸出:

當(dāng)前任務(wù)名稱:task1
task1耗時(shí)毫秒:1013
當(dāng)前任務(wù)名稱:task2
task2耗時(shí)毫秒:2014
總?cè)蝿?wù)數(shù):2
總耗時(shí)毫秒:3027
所有任務(wù)簡要信息:
StopWatch '': running time = 3027555400 ns
所有任務(wù)詳細(xì)信息:
StopWatch '': running time = 3027555400 ns
---------------------------------------------
ns         %     Task name
---------------------------------------------
1013462900  033%  task1
2014092500  067%  task2

到此這篇關(guān)于Spring計(jì)時(shí)器StopWatch的具體使用的文章就介紹到這了,更多相關(guān)Spring StopWatch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC攔截器快速掌握上篇

    SpringMVC攔截器快速掌握上篇

    攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器的概念及入門案例,感興趣的可以嘗試一下
    2022-08-08
  • 使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    這篇文章主要介紹了使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 使用SpringAI整合Ollama實(shí)現(xiàn)工具鏈調(diào)用功能

    使用SpringAI整合Ollama實(shí)現(xiàn)工具鏈調(diào)用功能

    文章介紹了SpringAI的ToolCalling能力,允許大模型自主調(diào)用外部工具以完成多步驟任務(wù),具體而言,通過@Tool注解標(biāo)記方法,SpringAI自動(dòng)解析生成JSONSchema,@Tools注解注冊(cè)多個(gè)工具,模型可自主選擇調(diào)用順序和組合,需要的朋友可以參考下
    2026-05-05
  • IDEA創(chuàng)建Spring項(xiàng)目無法選擇Java8的問題及解決

    IDEA創(chuàng)建Spring項(xiàng)目無法選擇Java8的問題及解決

    文章描述了在使用Spring創(chuàng)建項(xiàng)目時(shí)遇到的問題,通過將服務(wù)器地址從https://start.spring.io/替換為https://start.aliyun.com/,成功解決了無法選擇Java8的問題
    2025-01-01
  • Java中四種引用詳解

    Java中四種引用詳解

    這篇文章主要為大家介紹了Java中的四種引用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 聊聊ResourceBundle和properties讀取配置文件的區(qū)別

    聊聊ResourceBundle和properties讀取配置文件的區(qū)別

    這篇文章主要介紹了ResourceBundle和properties讀取配置文件的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)之散列表詳解

    Java數(shù)據(jù)結(jié)構(gòu)之散列表詳解

    散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。本文將為大家具體介紹一下散列表的原理及其代碼實(shí)現(xiàn)
    2022-01-01
  • logback輸出日志屏蔽quartz的debug等級(jí)日志方式

    logback輸出日志屏蔽quartz的debug等級(jí)日志方式

    這篇文章主要介紹了logback輸出日志屏蔽quartz的debug等級(jí)日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 最新評(píng)論

    伊吾县| 和龙市| 台前县| 定襄县| 安陆市| 桐城市| 衡阳市| 田林县| 天峨县| 眉山市| 株洲县| 醴陵市| 白山市| 宁城县| 通道| 科技| 大方县| 肇庆市| 泰顺县| 天镇县| 永靖县| 湘潭县| 肥乡县| 贵南县| 揭西县| 平遥县| 叙永县| 宁波市| 刚察县| 麻城市| 永寿县| 泰兴市| 株洲县| 通海县| 胶州市| 安庆市| 临西县| 方正县| 高要市| 申扎县| 牙克石市|