java中如何计算某个方法的运行时间?
通过获得方法执行前的时间戳和方法执行后的时间戳来比较。
以求1000以内的质数为例:
public class TimeSpendTest {
public static void main(String[] args) {
TimeSpendTest test = new TimeSpendTest();
long start = System.currentTimeMillis(); //程序执行前的时间戳
test.method(); //method是想要计算运行时间的程序
long end = System.currentTimeMillis(); //程序执行后的时间戳
System.out.println("程序执行花费时间:" + (end - start));
}
public void method(){
boolean isFlag;
for (int i = 2; i < 1000; i++) {
isFlag = true;
for (int j = 2;j <= Math.sqrt(i);j++){
if(i % j == 0){
isFlag = false;
}
}
if(isFlag){
System.out.println(i + "\t是质数");
}
}
}
}
获得程序执行时间可以用来优化程序,比较两个方法的时间复杂度。
此外,还可以用Calendar类来获取时间。
Calendar.getInstance().getTimeInMillis()
但是此类在执行时会耗时,所以一般用System.currentTimeMillis()来获取时间戳。