msvcrt:内存使用变得疯狂,但不在调试器下
问题描述:
我有一个C++代码与英特尔编译器,32位,在MS VC6模式下编译,因此使用msvcrt.dll或msvcrtd.dll。该过程会导致内存分配和重新分配。我使用WMI监视内存使用情况并查看VirtualSize和WorkingSetSize。msvcrt:内存使用变得疯狂,但不在调试器下
与调试运行时(msvcrtd.dll):虚拟恒定1.7GB,工作恒定1.2GB
与非调试运行时(MSVCRT.DLL):虚拟饲养1.7-- 2.1GB,工作提高1.2-1.4 GB
带有非调试运行时,但在调试器(windbg)下:虚拟常量1.7GB,工作常量
在2.1 GB虚拟进程正在崩溃(如预期的那样)。但是,为什么虚拟使用率只会随着(非调试)msvcrt.dll而增加,并且只有在不在调试器下才会增加? 在所有情况下,编译标志都是相同的,只有运行时库不同。