3

我有一个 ASP.NET 应用程序。

以下引发 System.OutOfMemoryException:

byte[] test = new byte[268435456];

在我调用这个的时候,当前的内存使用量是 158MB,每

System.Diagnostics.Process proc = System.Diagnostics.Process.GetCurrentProcess();
long value = proc.PrivateMemorySize64;

在本地,我运行的是 32 位 Windows 7,而在生产中我们是 64 位的 Windows Server 2008R2。两个盒子都有4GB内存。虽然我的盒子每个 Windows 任务管理器大约 5GB,但生产盒子小于 3GB。无论哪种方式,两个盒子都有可用的内存(我在页面文件上)。创建长度为 256MB(268435456 字节)的字节数组是否有超过 256MB 的开销?ASP.NET 中是否存在继承限制?

编辑:2008R2 框上应用程序池的“私有内存限制”设置为 0(无限制)

4

1 回答 1

0

发生内存不足异常的原因是 .net 无法从大堆中分配足够的连续内存。即使您的系统有 4gb 的内存,用户空间最大为 2gb。

这在我的具有 4GB 内存的 Windows 7 64 位版本的 Windows 上运行良好。

于 2012-11-30T13:11:12.947 回答