考虑以下 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
条件以用于代码优化是否有意义?
据我了解,评估条件标志是否解析为真或假比遍历字符集合并将该集合中的每个字符与来自不同集合的另一个对应字符进行比较要快得多。
我对汇编的了解大约是 30%,我想说的是所涉及的内部和操作码/助记符,因此我问这个问题的原因。
更新
注意:此处发布的代码与语言无关;我选择 Java 只是为了一些有形且易于阅读的东西,以及在程序员社区中广为人知的东西。