如何测量 Java 方法的执行时间?
通常,经过时间是事件从起点到终点的时间。以下是在Java中查找经过时间的各种方法
currentTimeMillis()方法以毫秒为单位返回当前时间。要查找方法的经过时间,您可以获取执行所需方法之前和之后的时间值之间的差异。
nanoTime()方法以纳秒为单位返回当前时间。要查找方法的经过时间,您可以获取执行所需方法之前和之后的时间值之间的差异。
Instant类的now()方法返回当前时间,Duration.between()方法返回给定的两个时间值之间的差以获取经过的时间检索所需方法执行前后的时间值并检索使用Duration.between()方法的持续时间。
Apache公共库提供了一个称为Stopwatch的类,它提供了start()、stop()和getTime()方法来查找执行方法所花费的时间。
示例
以下示例演示如何使用上述方法查找方法的执行时间-
import java.time.Duration;
import java.time.Instant;
import org.apache.commons.lang3.time.StopWatch;
public class Example {
public void test(){
int num = 0;
for(int i=0; i<=50; i++){
num =num+i;
System.out.print(num+", ");
}
}
public static void main(String args[]){
Example obj = new Example();
long start1 = System.nanoTime();
obj.test();
long end1 = System.nanoTime();
System.out.println("以纳秒为单位的经过时间: "+ (end1-start1));
long start2 = System.currentTimeMillis();
obj.test();
long end2 = System.currentTimeMillis();
System.out.println("已用时间(以毫秒为单位): "+ (end2-start2));
Instant inst1 = Instant.now();
obj.test();
Instant inst2 = Instant.now();
System.out.println("已用时间: "+ Duration.between(inst1, inst2).toString());
StopWatch stopWatch = new StopWatch();
stopWatch.start();
obj.test();
stopWatch.stop();
System.out.println("已用时间(分钟): "+ stopWatch.getTime());
}
}输出结果
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 以纳秒为单位的经过时间: 1882300 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 已用时间(以毫秒为单位): 1 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 已用时间: PT0.001S 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 已用时间(分钟): 1
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话