コードですか
while(currentLine <= endLine)
{
// more code
currentLine++;
}
に相当
while(currentLine < endLine || currentLine == endLine)
{
// more code
currentLine++;
}
パフォーマンスの面で?
コードですか
while(currentLine <= endLine)
{
// more code
currentLine++;
}
に相当
while(currentLine < endLine || currentLine == endLine)
{
// more code
currentLine++;
}
パフォーマンスの面で?
この<=
操作は通常、単一のバイトコード命令if_icmple
またはifle
. JVM がそれをどのように解釈するかは通常、マシンに依存しますが、ほとんどのハードウェアは < と <= を単一の命令として評価することをサポートしています。したがって、 のパフォーマンスは<=
と同じになるはず<
です。
Java コンパイラは、2 番目のコードを最初のコードとして書き直す可能性があるため、パフォーマンスが低下することはありません。ただし、これは実装の詳細です。
一般的に言えば、パフォーマンスのボトルネックの原因であることが確実でない限り、この種のマイクロ最適化について心配する必要はありません。このような決定がプログラムの実行時間に大きな影響を与えることは非常にまれです。
お役に立てれば!
まあ、ショート サーキット ロジックが比較よりも効率的であるかどうかを議論することができます。