如何测量 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 婚前女儿生日祝福语简短