我有一台2 GB的机器.在运行我的exe之前,我有1.1 GB的可用内存.当我运行下面只能找到一行的exe时,我就会出现内存异常.
我期待以下行使用大约6亿字节的内容.MemoryStream类使用的内存多于初始化容量吗?
MemoryStream memory = new MemoryStream(600000000);
Run Code Online (Sandbox Code Playgroud)
根据以下问答,很可能是因为您的EXE无法分配600兆的连续内存.(我试图在文档中找到一些东西,这是我能在短时间内得到的最好的东西.)
"内存不足"错误几乎从未发生过,因为没有足够的可用存储空间;正如我们所见,存储是磁盘空间,而且磁盘现在很庞大.相反,由于进程是一个"内存不足"错误无法在其虚拟地址空间中找到足够大的连续未使用页面部分来执行请求的映射."
有趣的是,这个答案与Eric Lippert的博客文章有关:http: //blogs.msdn.com/b/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory的.aspx
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |