malloc
我写了一个快速而肮脏的程序,通过重复调用来泄漏内存。我注意到当我在调试配置中(在 VS 2012 中)运行我的程序时,我的程序正确地消耗了千兆字节的内存并一直运行直到页面文件已满(Windows 任务管理器报告高工作集大小)。但是,当我在发布模式下运行程序时,我的程序的工作集大小仍然很小,但提交大小继续增长。磁盘抖动或页面错误也明显减少。
MSDN 文档指出,在 Debug 模式下,malloc
映射到_malloc_dbg
,但文档还指出,两者都在堆上分配内存,只_malloc_dbg
为调试信息分配额外的内存 - 没有提到不同的堆行为(即为什么它不以发布模式显示在私有工作集中)。
求大神告知,怎么回事?