当我在发布模式下从Visual Studio启动我的应用程序时,它比从.exe开始要慢得多。我该如何解决这个问题? 另外,有没有办法提高调试性能?
我正在使用Visual Studio 2012.
答案 0 :(得分:0)
这种行为可能有三个主要原因。
原因之一是special debug heap,当您在调试器下运行程序时,Windows会自动使用this question(甚至不是Visual C ++运行时)。它甚至用于发布版本,它比通常的堆慢。要摆脱它,你必须在调试器外启动程序,然后附加调试器。
原因二是代码的行为不同,具体取决于::IsDebuggerPresent()
或其等价物返回的内容。如果是这种情况,您将不得不处理它或暂时禁用此代码。
原因三是当附加调试器时OutputDebugString()
变得慢得多。如果您有大量的调试跟踪,这会变得非常糟糕。如果这是您必须处理它或暂时禁用执行调试输出的代码的原因。
另见{{3}}的答案。