次の Java コードを検討してください。
public void DoStuff(String[] strings, boolean preEval)
{
final String compareTo = "A Somewhat Long String of Characters";
for ( int i = 0; i < strings.length; ++i )
{
if ( preEval )
{
if( strings[i].equals(compareTo) )
{
//do something process intensive
}
}
//do something process intensive
}
}
if (preEval)
ここで、その中の内側のステートメントに注意を払います。使用中のアルゴリズムが preEval などの条件を必要とする場合、preEval
コードの最適化のために条件を含めることは理にかなっていますか?
私の理解では、条件付きフラグが true または false に解決されるかどうかを評価することは、文字のコレクションを繰り返し処理し、そのコレクション内の各文字を別のコレクションの対応する別の文字と比較するよりもはるかに高速です。
アセンブリに関する私の知識は、関連する内部およびオペコード/ニーモニックに関して言えば約 30% であるため、なぜこの質問をしているのか.
アップデート
注:ここに掲載されているコードは、言語に依存しないことを意図しています。私が Java を選んだのは、具体的で読みやすいものと、プログラマー コミュニティで広く知られているもののためだけです。