java如何计时
计时方法一:使用 System.currentTimeMillis()
通过获取当前系统时间的毫秒数差值实现计时。适合简单场景或粗略计时。

long startTime = System.currentTimeMillis();
// 执行待测代码
long endTime = System.currentTimeMillis();
System.out.println("耗时:" + (endTime - startTime) + "ms");
计时方法二:使用 System.nanoTime()
提供纳秒级精度(实际精度依赖硬件),适合需要高精度计时的场景。注意避免数值溢出问题。

long startTime = System.nanoTime();
// 执行待测代码
long endTime = System.nanoTime();
System.out.println("耗时:" + (endTime - startTime) / 1_000_000.0 + "ms");
计时方法三:使用 Instant 类(Java 8+)
结合Java 8的时间API实现更规范的计时,支持纳秒级精度。
Instant start = Instant.now();
// 执行待测代码
Instant end = Instant.now();
System.out.println("耗时:" + Duration.between(start, end).toMillis() + "ms");
计时方法四:使用 StopWatch(Spring框架)
Spring框架提供的工具类,支持多任务分段计时和格式化输出。
StopWatch stopWatch = new StopWatch();
stopWatch.start("任务1");
// 执行任务1
stopWatch.stop();
stopWatch.start("任务2");
// 执行任务2
stopWatch.stop();
System.out.println(stopWatch.prettyPrint());
注意事项
- 避免在测量极短时间时忽略JVM预热影响,可通过预热循环消除
- 多线程环境考虑使用线程安全的计时工具
- 生产环境建议结合日志框架记录耗时






