请问各位高手
我如何获取Java代码运行的时间???
比如说
下面一段程序
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}我如何才能获取这段代码从初始化到运行结束的时间呢???
最好不要用IDE工具
我想要用代码实现让他显示运行时间....
谢谢了
我如何获取Java代码运行的时间???
比如说
下面一段程序
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}我如何才能获取这段代码从初始化到运行结束的时间呢???
最好不要用IDE工具
我想要用代码实现让他显示运行时间....
谢谢了
结束时再去的时间,相减不行吗?
比如 long begin = new java.util.Date().getTime();
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}
long end = new java.util.Date().getTime();
System.out.println(end - begin);这样的话,估计会输出1.
多循环几次效果明显。
//your code
long after= new Date().getTime();
long runTime=after-before;//单位为毫秒;
long startTime = 0;
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
startTime = System.currentTimeMillis();
sb=sb.append("+").append(i);
System.out.println(sb);
}
System.out.println(System.currentTimeMillis() - startTime);
这种方法想过,但是觉得这样会有一定的误差,虽然误差小到我们发觉不到
但是我是想了解Java虚拟机内部的运行机理才这样问的
希望能的到更好的方法
再次感谢1楼和3楼
StringBuffer sb=new StringBuffer(" ");
long startTime = System.currentTimeMillis();
for(int i=0;i<100;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}
System.out.println(System.currentTimeMillis() - startTime);
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
startTime = System.currentTimeMillis();
sb=sb.append("+").append(i);
System.out.println(sb);
}
System.out.println(System.currentTimeMillis() - startTime);
StringBuffer sb=new StringBuffer(" ");
for(int i=0;i<100;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}
System.out.println(System.currentTimeMillis() - startTime);
StringBuffer sb=new StringBuffer(" ");
long startTime = System.currentTimeMillis();
for(int i=0;i<2000000;++i){
sb=sb.append("+").append(i);
System.out.println(sb);
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime + "ms");
不过将循环设置大一点,否则精确度不够。可以将循环设置的大一些,这样会更大的减小误差
根据虚拟内存分配的大小设置,否则有可能会出现内存溢出