Java 计算程序执行时间

本文介绍了Java中用于性能测试的两种计时方法:使用`System.currentTimeMillis()`以毫秒为单位和使用`System.nanoTime()`以纳秒为单位。通过示例代码展示了如何精确测量代码执行时间。

第一种是以毫秒为单位计算的。  Java代码  //伪代码   

复制代码代码如下:

long startTime=System.currentTimeMillis();   //获取开始时间  

doSomeThing();  //测试的代码段  

long endTime=System.currentTimeMillis(); //获取结束时间  

System.out.println("程序运行时间: "+(end-start)+"ms");  


第二种是以纳秒为单位计算的。  Java代码  //伪代码   
复制代码代码如下:

long startTime=System.nanoTime();   //获取开始时间  

doSomeThing();  //测试的代码段  

long endTime=System.nanoTime(); //获取结束时间  

System.out.println("程序运行时间: "+(end-start)+"ns");  

### 如何在 Java 中测量程序执行时间 为了精确地测量一段代码或整个程序的执行时间,在 Java 中可以采用多种方法。一种常见的方式是利用 `System.currentTimeMillis()` 函数来获取当前的时间戳,单位为毫秒[^1]。 另一种更推荐的方法是从 Java 1.5 开始引入的 `System.nanoTime()` 方法,它提供了更高精度的时间度量工具,适合用于短时间段内的性能测试。`nanoTime()` 返回的是纳秒级别的计数值,并不是实际的日历时间,因此非常适合用来做间隔时间计算[^2]。 下面是一个简单的例子展示如何使用这两种方式: ```java public class ExecutionTimer { public static void main(String[] args) throws InterruptedException { long startTime = System.currentTimeMillis(); // 模拟一些操作 Thread.sleep(1000); long endTime = System.currentTimeMillis(); System.out.println("Using currentTimeMillis(): " + (endTime - startTime) + " ms"); long startNano = System.nanoTime(); // 同样的模拟操作 Thread.sleep(1000); long endNano = System.nanoTime(); double durationInSeconds = (endNano - startNano) / 1_000_000_000.0; System.out.printf("Using nanoTime(): %.3f s\n", durationInSeconds); } } ``` 对于更加复杂的场景或者当需要统计多个不同部分的时间消耗时,还可以考虑使用第三方库如 Apache Commons Lang 的 StopWatch 类或者是 JMH(Java Microbenchmark Harness),这些工具能够提供更为精细和可靠的基准测试支持[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值