我在MS VC6模式下使用Intel编译器,32位编译了C ++代码,因此使用msvcrt.dll或msvcrtd.dll。该过程使记忆力分配和交易分配。我使用WMI监视内存使用量,并查看VirtualSize和OrikingSetsize。

使用调试运行时(msvcrtd.dll):虚拟常数1.7GB,工作常数1.2GB
使用非驱动器运行时(msvcrt.dll): 虚拟升高1.7-- 2.1GB, ,筹集1.2-1.4GB
使用非选的运行时间,但在调试器(WINDBG)下:虚拟常数1.7GB,工作常数

在2.1 GB Virtual时,该过程正在崩溃(如预期的那样)。但是,为什么仅在(非删除)msvcrt.dll和不在调试器下的情况下,虚拟用法才会增加?在所有情况下,汇编标志都是相同的,只有运行时液体不同。

没有正确的解决方案

其他提示

通常,问题是非初始化的局部变量,这些变量被调试RTL无效,但在使用Release RTL时却不是。看一下 “生存版本” 看看这是否有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top