我正在对缓慢的C ++应用程序进行基准测试/优化,并且在进行一些堆栈测试时,我发现我的应用程序的发布版本正在使用调试堆,因为找到的一些堆栈跟踪会指示:
ntdll.dll!string "Enabling heap debug options\n"() + 0x11056 bytes
这是在Windows 7上运行的64位应用程序。我在网上完全相同的环境中看到有关此问题的两三个其他投诉,但没有任何回复。
有没有人知道为什么Windows或Visual Studio会将调试堆用于发布版本C ++项目?
答案 0 :(得分:6)
The debug heap is used when a program is run under debugger(分析器经常表现为调试器)。为了绕过它,程序应该在没有调试的情况下启动,然后调试器应该附加到正在运行的进程。