编程时候的一些细节很重要,今天在做代码时发现了一个非常容易让人忽视的问题,以Java程序为列:
import java.util.*;
import static java.lang.System.*;
public class Main {
private static long time;
private static long startTime;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
startTime = System.currentTimeMillis();
for(long i=0; i<100000; i++){
long arg = 10;
arg = 10+8+10*8/2;
//System.out.println("message");
}
time = System.currentTimeMillis() - startTime;
System.out.println(time);
}
}
程序很简单,模拟进行10万次运算,打印出运行时间,在我电脑上是2毫秒就完事了,但是如果在这个循环中加上一条输出语句System.out.println("message")的话这个程序的运行时间就变成了600毫秒,如果循环次数改为1亿次那这个时间就相当可观了,所以计算机本身运算的速度非常快而执行I/O操作是很耗时的。为提高一点点程序运行性能,可以考虑在程序发布前将输出语句能删除的删除掉