Amo*_*mol 2 java micro-optimization
我想知道单独执行条件循环需要多长时间.就像我可以选择使用"if else","while","for"或"foreach"循环那么循环会更快地执行.我知道差异会非常小,大多数人会说它不会但是,如果我有一个可以访问数千个数据的程序,那么这一点就会出现.
我想知道我是否在java的开头声明了一个变量,如果我在使用它之前声明它将会有所不同.是否会减少所需的总时间?如果是,则实际使用哪一个(变量在开头声明或者它们刚被声明为b4的那个被使用)?
pol*_*nts 14
停止微优化.
花时间寻找最佳算法,最佳数据结构和系统的最佳设计,并编写最易读的代码.不是在这些小事上.
尝试手动优化代码没有太大意义 - JIT编译器可能比你做得好得多.并非最不重要,因为它将在编译之前获得有关执行点的确切环境的更多信息.
此外,由于优化器针对"常见情况"进行了调整,因此对代码引入不常见的优化实际上可能使JIT编译器的优化程度降低,因此最终会更慢.
不过,如果你还是真的想要测量的东西,你可以做这样的:
long before = System.currentTimeMillis();
// execute your code e.g. a million times
long after = System.currentTimeMillis();
System.out.println("Execution took " after - before " milliseconds");
Run Code Online (Sandbox Code Playgroud)