📅  最后修改于: 2023-12-03 15:16:37.915000             🧑  作者: Mango
在Java程序中,有时需要计算某个方法的执行时间,以便对程序进行优化或者调试。Java中提供了两种计算方法执行时间的方式,下面将分别介绍。
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()方法返回当前时间(以纳秒为单位)。可以在方法调用之前获取一个时间戳,然后在方法调用之后获取另一个时间戳。方法执行时间可以通过两个时间戳相减得到。
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