📜  Java程序来计算方法的执行时间(1)

📅  最后修改于: 2023-12-03 15:16:37.915000             🧑  作者: Mango

Java程序计算方法执行时间

在Java程序中,有时需要计算某个方法的执行时间,以便对程序进行优化或者调试。Java中提供了两种计算方法执行时间的方式,下面将分别介绍。

System.currentTimeMillis()

System.currentTimeMillis()方法返回自1970年1月1日00:00:00 GMT以来的毫秒数。可以在方法调用之前获取一个时间戳,然后在方法调用之后获取另一个时间戳。方法执行时间可以通过两个时间戳相减得到。

long startTime = System.currentTimeMillis();
// 要计算执行时间的代码
long endTime = System.currentTimeMillis();
System.out.println("方法执行时间:" + (endTime - startTime) + "ms");
System.nanoTime()

System.nanoTime()方法返回当前时间(以纳秒为单位)。可以在方法调用之前获取一个时间戳,然后在方法调用之后获取另一个时间戳。方法执行时间可以通过两个时间戳相减得到。

long startTime = System.nanoTime();
// 要计算执行时间的代码
long endTime = System.nanoTime();
System.out.println("方法执行时间:" + (endTime - startTime) + "ns");

需要注意的是,System.nanoTime()方法的精度可能会受到环境的限制,因此在不同的环境中可能会有所不同。而System.currentTimeMillis()方法则没有这个问题。

示例代码

下面是一个示例代码,演示如何计算方法执行时间。该代码中定义了一个MyUtil类,包含了一个用于计算数组排序执行时间的静态方法sort,并在main方法中调用该方法并打印出了执行时间。

public class MyUtil {

    public static void sort(int[] arr) {
        Arrays.sort(arr);
    }

}

public class Main {

    public static void main(String[] args) {
        int[] arr = new int[]{5, 2, 1, 6, 9, 8, 7, 3, 4};

        long startTime = System.nanoTime();
        MyUtil.sort(arr);
        long endTime = System.nanoTime();
        System.out.println("方法执行时间:" + (endTime - startTime) + "ns");
    }

}

输出结果如下:

方法执行时间:28000ns