【Java】三种方式快速统计代码运行时长
方法一 (推荐)
使用apache提供的工具类
import org.apache.commons.lang3.time.StopWatch;
public class Test {
public static void main(String[] args) {
//初始化
StopWatch stopWatch = new StopWatch();
//开始时间统计
stopWatch.start();
method();
//结束时间统计
stopWatch.stop();
//运行时间ns
System.out.println(stopWatch.getNanoTime());
//运行时间ms
System.out.println(stopWatch.getTime());
}
private static void method() {
for (int i = 0; i < 1000000; i++) {
Math.sqrt(1.44);
}
}
}
方法二
这个是最原始的方法,来统计代码的运行时长了。
public class tmpTest {
public static void main(String[] args) {
//开始时间
long stime = System.currentTimeMillis();
Math.sqrt(1.44);
//结束时间
long etime = System.currentTimeMillis();
//开始时间
long stime1 = System.nanoTime();
Math.sqrt(1.44);
//结束时间
long etime1 = System.nanoTime();
//计算执行时间
System.out.printf("执行时长:%d 毫秒.", (etime - stime));
//计算执行时间
System.out.printf("执行时长:%d 纳秒.", (stime1 - etime1));
}
}
方法三
自己定义Timer类,来实现代码运行时长的统计。(参照OnJava 8里面的类)
- 步骤一:自定义一个运行时间统计时长的类
import static java.util.concurrent.TimeUnit.*;
/**
* @author xiucai
* @date 2022/6/12 10:06
* @description OnJava8 作者封装的代码运行时间统计的类
*/
public class Timer {
private long start = System.nanoTime();
public long duration() {
return NANOSECONDS.toMillis(
System.nanoTime() - start);
}
public static long duration(Runnable test) {
Timer timer = new Timer();
test.run();
return timer.duration();
}
}
- 步骤二:使用
public class Test {
public static void main(String[] args) throws ClassNotFoundException {
//使用自己定义的那个运行时长统计的类
Timer timer = new Timer();
Math.sqrt(999999);
//输出代码的运行时长(单位ns)
System.out.println(timer.duration());
}
}