0

これはある記事で読みました。しかし、ここで与えられた答えは明確ではありません..

  1. is it true?
  2. Can anyone explain it better?
  3. Is there a document that explains java / JVM caching mechanism overall?


  **Which one is faster in Java ?**

  for(int i = 100000; i > 0; i--) {}
  for(int i = 1; i < 100001; i++) {}


  Answer: Which ever is run second with be fastest. The server JVM can detect and 
  eliminate loops which don't do anything. A method with either loop is compiled when 
  the loop iterates about 10,000 times. (Based on -XX:CompileThreshold=10000) The first 
  loop will take time to detect it doesn't do anything, however the second will have been
  compiled.
4

1 に答える 1

0

Java は高水準言語であるため、作成するコードとコンパイラによって生成されるコードには違いがあります。コンパイラと JVM がコードを最適化しようとしています。最初の for は何も実行せず、10000 回を超えて反復しないため実行されません。2番目のforは反復しますが、JVMは10000回以上反復するため実行します。

于 2012-11-16T23:03:34.063 に答える