apache的时间监视器StopWatch
org.apache.commons.lang3.time.StopWatch。
在编程过程中,常常需要计算某段程序的运行时间,常见做法是在目标程序段的前后分别记录系统毫微秒时间,通过取差得到时间差,现在有一种更好的方式是:使用apache提供的StopWatch。
相对于System.currentTimeMillis(),StopWatch更加灵活,功能更加齐全完善,推荐使用此用法。
<!-- StringUtils、NumberUtils等工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
使用System.currentTimeMillis()获取程序运行时间
long startTime = System.currentTimeMillis();
//运行主程序
long endTime = System.currentTimeMillis();
System.out.println("程序运行时间: " + (endTime - startTime) + "ms");
//运行结果:程序运行时间: 0ms
使用StopWatch获取程序运行时间
//创建监视器并开启 相当于StopWatch watch = StopWatch.createStarted();
StopWatch watch = new StopWatch();
watch.start();
//记录运行时间
Thread.sleep(1000);
System.out.println("运行时间1:" + watch.getTime() + "ms");
//运行结果:运行时间1:1000 ms
//暂停1秒后恢复,记录运行时间
watch.suspend();
Thread.sleep(1000);//因为暂停了,因此此1秒不会计入监视器
watch.resume();
System.out.println("运行时间2:" + watch.getTime() + "ms");
//运行结果:运行时间2:1001 ms
//重置计时,记录运行时间
//重置后必须调start,否则会报错:Stopwatch is not running.
watch.reset();
watch.start();
Thread.sleep(1000);
System.out.println("运行时间3:" + watch.getTime() + "ms");
//运行结果:运行时间3:1000 ms
//设置切点
watch.split();
System.out.println("获取开始到最后一个切点的时间:" + watch.getSplitTime() + "ms");
//运行结果:获取开始到最后一个切点的时间:1000 ms
//停止
watch.stop();
Thread.sleep(1000);
System.out.println("开始到结束运行时间:" + watch.getTime() + "ms");
//运行结果:开始到结束运行时间:1000ms
标签:
实用技巧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2022-11-27 Spring给我们提供了哪些扩展点
2021-11-27 说说hashCode() 和 equals() 之间的关系?
2021-11-27 说说Object类下面有几种方法呢?
2021-11-27 Redis中是如何实现分布式锁的?
2021-11-27 单例模式有几种写法?
2021-11-27 消息队列中,如何保证消息的顺序性?
2021-11-27 分库分表之后,id 主键如何处理?