0
運行.exe Debug.WriteLine()效果性能8x的存在。
調試語句如何影響性能而不是在調試?
我怎樣纔能有一個調試不影響.exe性能?
counterRequals被引用後,它不能跳過。
這個if命中超過10億次。Debug.WriteLine影響非調試性能
if (innerInnerLoopCount > 1 && r == innerInnerLoopCount)
{
counterRequals++;
Debug.WriteLine("");
}
'Debug'成員已將[ConditionalAttribute](http://msdn.microsoft.com/en-us/library/system.diagnostics.conditionalattribute.aspx)分配給它們,因此它們不會出現在'Release '模式。這聽起來像你正在運行沒有調試器的'Debug'版本。如果您需要像調試一樣的功能,請考慮使用[Trace](https://msdn.microsoft.com/en-us/library/system.diagnostics.trace(v = vs.110).aspx)類,你可能會遇到10分鐘點擊量的性能問題。可以考慮[EventSource](https://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource.aspx) – keyboardP
僅僅因爲你不調試並不意味着你沒有編譯在調試模式下。你是否在Debug或Release模式下編譯? – sstan
如果左運算符表達式預測不好,則&&運算符非常昂貴,分支預測失敗會使運算速度降低約5倍。乘以十億,你有大約2秒沒有用處。交換操作數。並且* do *更喜歡不使用分支的快速版本:'if(r == innerInnerLoopCount&innerInnerLoopCount> 1)' –