考慮下面的Java代碼:如果語句優化 - 比較字符串常量VS布爾標誌
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,以及在程序員社區中廣爲人知的一些東西。
我可能已經澄清我沒有遇到Java或任何其他語言這個問題,它只是我很好奇 - 我認爲很可能是與語言無關的功能的東西,但更使CPU依賴。 – zeboidlund