运行时的虚拟内存不足以用于Release,但不适用于Debug版本

时间:2015-03-26 23:08:27

标签: visual-studio-2010 fortran

我在Visual Studio 2010中使用英特尔Fortran编译器11.我的程序在运行时崩溃,错误“严重(41)虚拟内存不足”,但只有发布版本。调试版本运行顺利,在Task Menager(Windows 7)中,它分配1.7 GB内存(工作集(内存),而提交大小为1.9 GB)。我的笔记本电脑有8GB的内存。为什么Debug运行顺畅? 感谢

1 个答案:

答案 0 :(得分:1)

以下假设,即使您的笔记本电脑上有8GB RAM,并且您可能拥有64位操作系统,Fortran创建的可执行文件也是32位可执行文件。

1.9GB非常接近32位进程可以访问的最大地址空间。如果您的可执行文件具有大地址识别功能并设置了IMAGE_FILE_LARGE_ADDRESS_AWARE标志,则可以访问更多。

请参阅:Memory Limits for Windows and Windows Server Releases

似乎Release版本仅使用稍微多于Debug版本。也许在启动时有一个稍微不同的执行路径,或者您可能只是略微不同地使用它。 编辑:@HansPassant正确指出某些版本优化会放弃一些RAM进行速度优化。

当您尝试启动发布版本以确认或反驳此理论时,请在任务管理器中观察内存分配。

如果理论证明是正确的,请探索64位编译和/或略微减少内存需求。