我想改善這個代碼:的Java想提高代碼剪斷
for (int i = 0; i < a.length(); i++) {
for (int j = 0; j < b.length(); j++) {
if (arrayA[i] == arrayB[j]) {
arrayA[i] = ' ';
arrayB[j] = ' ';
}
}
}
的代價高昂的操作是
arrayA[i] = ' ';
arrayB[j] = ' ';
如果我評論說出來的代碼運行從180ms時至12ms的...
需要類似的東西,所以我可以計數空數組。
如果你註釋掉這兩行,編譯器可能會注意到你的循環沒有做任何事情,並且完全將它們優化掉。我懷疑時間結果反映了這兩條線的成本。 'arrayA'和'arrayB'最初包含什麼? – 2014-09-22 23:29:17
註釋掉一行,其性能如何?這將允許您從理論上確定只需一套操作的成本。兩組操作的差值乘以2. – Compass 2014-09-22 23:30:11
@Compass - 除非註釋掉一行影響'if'語句正文的頻率。 – 2014-09-22 23:31:06