Запуск .exe наличие эффекта эффектов Debug.WriteLine() 8x.
Как может эффект эффективности отчета Debug не отлаживаться?
Как я могу добиться отладки неэффективности .exe?
counterRequals ссылается после того, как он не может просто пропустить.
Это, если наносится более 1 миллиарда раз.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), хотя вы, возможно, столкнетесь с первыми проблемами с 1bn-хитами. Можно рассмотреть [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)' –