0

コードですか

 while(currentLine <= endLine)  
  {
     // more code
     currentLine++;  
  }

に相当

 while(currentLine < endLine || currentLine == endLine)
  {
     // more code
     currentLine++;   
  }

パフォーマンスの面で?

4

2 に答える 2

8

この<=操作は通常、単一のバイトコード命令if_icmpleまたはifle. JVM がそれをどのように解釈するかは通常、マシンに依存しますが、ほとんどのハードウェアは < と <= を単一の命令として評価することをサポートしています。したがって、 のパフォーマンスは<=と同じになるはず<です。

Java コンパイラは、2 番目のコードを最初のコードとして書き直す可能性があるため、パフォーマンスが低下することはありません。ただし、これは実装の詳細です。

一般的に言えば、パフォーマンスのボトルネックの原因であることが確実でない限り、この種のマイクロ最適化について心配する必要はありません。このような決定がプログラムの実行時間に大きな影響を与えることは非常にまれです。

お役に立てれば!

于 2012-05-30T20:06:20.517 に答える
0

まあ、ショート サーキット ロジックが比較よりも効率的であるかどうかを議論することができます。

于 2012-05-30T20:09:01.623 に答える