java中需要的时间

Amo*_*mol 2 java micro-optimization

我想知道单独执行条件循环需要多长时间.就像我可以选择使用"if else","while","for"或"foreach"循环那么循环会更快地执行.我知道差异会非常小,大多数人会说它不会但是,如果我有一个可以访问数千个数据的程序,那么这一点就会出现.

我想知道我是否在java的开头声明了一个变量,如果我在使用它之前声明它将会有所不同.是否会减少所需的总时间?如果是,则实际使用哪一个(变量在开头声明或者它们刚被声明为b4的那个被使用)?

pol*_*nts 14

停止微优化.

花时间寻找最佳算法,最佳数据结构和系统的最佳设计,并编写最易读的代码.不是在这些小事上.

  • +1 - JIT编译器可以做更好,更一致的优化工作.实际上,Sun人员建议"聪明"的手优化实际上可以使JIT优化器更难以完成其工作. (2认同)
  • 同意.这些小的可以从版本更改为版本(就像使用String/StringBuffer/StringBuilder一样).使用"看起来更好"的代码. (2认同)

Pét*_*rök 7

尝试手动优化代码没有太大意义 - 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)