java8 Instant 计算方法耗时, 再见了我的System.currentTimeMillis()

以下是一个 Java Instant 计算方法耗时的示例代码:

import java.time.Duration;
import java.time.Instant;

public class InstantExample {
    
    

    public static void main(String[] args) {
    
    
        Instant start = Instant.now();

        // 执行需要计算耗时的方法
        long result = calculate();

        Instant end = Instant.now();

        Duration duration = Duration.between(start, end);
        long seconds = duration.getSeconds();
        long nanos = duration.getNano();

        System.out.println("耗时: " + seconds + " 秒 " + nanos + " 纳秒");
        System.out.println("计算结果: " + result);
    }

    private static long calculate() {
    
    
        long result = 0;
        for (long i = 0; i < 1000000000; i++) {
    
    
            result += i;
        }
        return result;
    }
}

在上述示例代码中,我们使用 Instant.now() 方法获取当前时间,并在执行需要计算耗时的方法前后分别获取当前时间,然后使用 Duration.between() 方法计算两个时间点之间的时间差,并将结果输出到控制台。

在示例代码中,我们使用一个简单的计算方法 calculate() 来模拟需要计算耗时的方法,该方法会执行一个简单的累加操作,并返回计算结果。

运行示例代码后,控制台会输出耗时和计算结果。

Instant 计算方法耗时跟 System.currentTimeMillis()计算耗时有什么不同, 为什么Instant好点

InstantSystem.currentTimeMillis() 都可以用来计算方法耗时,但是 Instant 更为精确。

System.currentTimeMillis() 方法返回自1970年1月1日UTC以来经过的毫秒数,可以用于计算一段代码执行的耗时。但是,System.currentTimeMillis() 方法存在一定的精度问题。当系统时间发生跳变或者时钟漂移时,可能会导致计算出来的时间不准确。

相比之下,Instant 是基于机器时间的无时区时钟,具有更高的精度和可靠性。在计算时间间隔时,Instant 更适合使用。

当需要计算方法耗时时,建议使用 Instant,尤其是在对时间精度要求较高的场景下。

猜你喜欢

转载自blog.csdn.net/HongZeng_CSDN/article/details/130020309