在java如何计算出运行的时间

在java如何计算出运行的时间

作者:Rhett Bai发布时间:2026-02-03阅读时长:0 分钟阅读次数:2

用户关注问题

Q
如何在Java中测量代码块的执行时间?

我想了解怎样用Java代码来计算某段程序运行所花费的时间。

A

使用System.currentTimeMillis()方法计算运行时间

可以使用System.currentTimeMillis()方法获取程序开始运行时的时间戳和代码执行结束时的时间戳,二者差值即为代码执行时间,单位是毫秒。例如:

long startTime = System.currentTimeMillis();
// 需要测量的代码
long endTime = System.currentTimeMillis();
long duration = endTime - startTime;
System.out.println("代码执行时间: " + duration + " 毫秒");

Q
有没有更高精度的方法来计算Java程序运行时间?

想用更精确的方式来测量Java代码的运行时间,有没有方法比currentTimeMillis()更好?

A

使用System.nanoTime()获取纳秒级别的运行时间

System.nanoTime()方法能返回纳秒级的计时值,比currentTimeMillis()精度高。使用方式与currentTimeMillis()类似,记录开始和结束的纳秒时间戳,二者相减即为代码运行时间,单位为纳秒。示例如下:

long startTime = System.nanoTime();
// 需要测量的代码
long endTime = System.nanoTime();
long duration = endTime - startTime;
System.out.println("代码执行时间: " + duration + " 纳秒");

Q
如何使用Java 8的工具来测量代码的运行时长?

有没有Java 8及以后版本自带的类或方法,方便统计代码运行时间?

A

利用Java 8的Instant和Duration类计算时间差

Java 8引入了java.time包,可以使用Instant类来标记时间点,结合Duration类计算二者之间的时间差,代码示例如下:

Instant start = Instant.now();
// 需要测量的代码
Instant end = Instant.now();
Duration duration = Duration.between(start, end);
System.out.println("代码执行时间: " + duration.toMillis() + " 毫秒");
这种方法使用现代时间API,更加灵活且可读性好。