Package org.aoju.bus.core.date
Class StopWatch
java.lang.Object
org.aoju.bus.core.date.StopWatch
秒表封装 此工具用于存储一组任务的耗时时间,并一次性打印对比 使用方法如下:
StopWatch stopWatch = new StopWatch("任务名称");
// 任务1
stopWatch.start("任务一");
Thread.sleep(1000);
stopWatch.stop();
// 任务2
stopWatch.start("任务一");
Thread.sleep(2000);
stopWatch.stop();
// 打印出耗时
Console.log(stopWatch.prettyPrint());
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription获取当前任务名,null表示无任务getId()获取StopWatch 的ID,用于多个秒表对象的区分获取最后的任务对象获取最后的任务名long获取最后任务的花费时间(毫秒)long获取最后任务的花费时间(纳秒)int获取任务数获取任务列表long获取所有任务的总花费时间long获取所有任务的总花费时间(毫秒)long获取所有任务的总花费时间(纳秒)double获取所有任务的总花费时间(秒)boolean检查是否有正在运行的任务static StopWatchof()创建计时任务(秒表)static StopWatch创建计时任务(秒表)生成所有任务的一个任务花费时间表,单位纳秒prettyPrint(TimeUnit unit) 生成所有任务的一个任务花费时间表voidsetKeepTaskList(boolean keepTaskList) 设置是否在停止后保留任务,false表示停止运行后不保留任务获取任务信息,类似于:shortSummary(TimeUnit unit) 获取任务信息,类似于:voidstart()开始默认的新任务void开始指定名称的新任务voidstop()停止当前任务toString()
-
Constructor Details
-
StopWatch
public StopWatch()构造,不启动任何任务 -
StopWatch
-
StopWatch
构造,不启动任何任务- Parameters:
id- 用于标识秒表的唯一IDkeepTaskList- 是否在停止后保留任务,false表示停止运行后不保留任务
-
-
Method Details
-
of
-
of
-
getId
-
setKeepTaskList
public void setKeepTaskList(boolean keepTaskList) 设置是否在停止后保留任务,false表示停止运行后不保留任务- Parameters:
keepTaskList- 是否在停止后保留任务
-
start
-
start
开始指定名称的新任务- Parameters:
taskName- 新开始的任务名称- Throws:
IllegalStateException- 前一个任务没有结束
-
stop
-
isRunning
public boolean isRunning()检查是否有正在运行的任务- Returns:
- 是否有正在运行的任务
- See Also:
-
currentTaskName
-
getLastTaskTimeNanos
获取最后任务的花费时间(纳秒)- Returns:
- 任务的花费时间(纳秒)
- Throws:
IllegalStateException- 无任务
-
getLastTaskTimeMillis
获取最后任务的花费时间(毫秒)- Returns:
- 任务的花费时间(毫秒)
- Throws:
IllegalStateException- 无任务
-
getLastTaskName
获取最后的任务名- Returns:
- 任务名
- Throws:
IllegalStateException- 无任务
-
getLastTaskInfo
获取最后的任务对象- Returns:
StopWatch.TaskInfo任务对象,包括任务名和花费时间- Throws:
IllegalStateException- 无任务
-
getTotal
获取所有任务的总花费时间- Parameters:
unit- 时间单位,null表示默认TimeUnit.NANOSECONDS- Returns:
- 花费时间
-
getTotalTimeNanos
public long getTotalTimeNanos()获取所有任务的总花费时间(纳秒)- Returns:
- 所有任务的总花费时间(纳秒)
- See Also:
-
getTotalTimeMillis
public long getTotalTimeMillis()获取所有任务的总花费时间(毫秒)- Returns:
- 所有任务的总花费时间(毫秒)
- See Also:
-
getTotalTimeSeconds
public double getTotalTimeSeconds()获取所有任务的总花费时间(秒)- Returns:
- 所有任务的总花费时间(秒)
- See Also:
-
getTaskCount
public int getTaskCount()获取任务数- Returns:
- 任务数
-
getTaskInfo
-
shortSummary
-
shortSummary
获取任务信息,类似于:StopWatch '[id]': running time = [total] [unit]- Parameters:
unit- 时间单位,null则默认为TimeUnit.NANOSECONDS- Returns:
- 任务信息
-
prettyPrint
-
prettyPrint
生成所有任务的一个任务花费时间表- Parameters:
unit- 时间单位,null则默认TimeUnit.NANOSECONDS纳秒- Returns:
- 任务时间表
-
toString
-