我有一台2 GB的机器,在运行我的exe之前,我有1.1 GB的空闲内存。当我运行下面只有一行的exe时,我遇到了内存不足的异常。
我预计以下代码将使用大约600,000,000字节。MemoryStream类使用的内存比初始化容量多吗?
MemoryStream memory = new MemoryStream(600000000);
我有一台2 GB的机器,在运行我的exe之前,我有1.1 GB的空闲内存。当我运行下面只有一行的exe时,我遇到了内存不足的异常。
我预计以下代码将使用大约600,000,000字节。MemoryStream类使用的内存比初始化容量多吗?
MemoryStream memory = new MemoryStream(600000000);
我找到了支持@SethFlowers建议(应用程序无法找到足够大的连续内存块)的文档:
当您初始化新进程时,运行时会为该进程保留一段连续的地址空间。这个保留的地址空间称为托管堆。
以下是有关.NET内存使用情况的其他解释以及如何分析应用程序的内存使用情况: