计时器工具-StopWatch
# 介绍
Hutool通过封装StopWatch实现计时器功能,即可以计算方法或过程执行的时间。
StopWatch支持多任务计时,方便对比不同任务的执行时间。
# 使用
# 1. 基本用法
// 创建StopWatch实例
StopWatch stopWatch = StopWatch.of("任务名称");
// 开始计时
stopWatch.start();
//---------------------------------
//-------这是执行过程
//---------------------------------
// 停止计时
stopWatch.stop();
// 获取总耗时(毫秒)
long totalMs = stopWatch.getTotalTimeMillis();
// 获取总耗时(秒)
double totalSeconds = stopWatch.getTotalTimeSeconds();
# 2. 多任务计时
// 创建StopWatch实例
StopWatch stopWatch = StopWatch.of("多任务测试");
// 任务1
stopWatch.start("任务一");
ThreadUtil.sleep(1000);
stopWatch.stop();
// 任务2
stopWatch.start("任务二");
ThreadUtil.sleep(2000);
stopWatch.stop();
// 打印任务耗时对比
Console.log(stopWatch.prettyPrint());
# 3. 常用方法
// 创建StopWatch实例
StopWatch stopWatch = StopWatch.of();
// 开始默认任务
stopWatch.start();
// 开始指定名称的任务
stopWatch.start("自定义任务");
// 停止当前任务
stopWatch.stop();
// 获取最后一个任务的耗时(毫秒)
long lastTaskMs = stopWatch.getLastTaskTimeMillis();
// 获取最后一个任务的名称
String lastTaskName = stopWatch.getLastTaskName();
// 获取任务总数
int taskCount = stopWatch.getTaskCount();
// 获取所有任务信息
StopWatch.TaskInfo[] taskInfos = stopWatch.getTaskInfo();
// 生成简洁的任务摘要
String summary = stopWatch.shortSummary();
// 生成详细的任务耗时表格
String detailedReport = stopWatch.prettyPrint();
# 特点
- 支持多任务计时:可以同时记录多个任务的执行时间
- 灵活的时间单位:支持纳秒、毫秒、秒等多种时间单位
- 友好的输出格式:提供简洁摘要和详细表格两种输出格式
- 线程安全:支持多线程环境下使用
- 轻量级:无外部依赖,实现简单高效
通过StopWatch,开发者可以方便地对代码的执行时间进行精确测量和分析,有助于性能优化和调试。