ASP.NET是否限制单个对象的内存使用?抛出OutOfMemoryException的256MB字节数组

时间:2012-05-29 19:01:18

标签: asp.net memory

我有一个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,在生产中我们是Windows Server 2008R2,64位。两个盒子都有4GB内存。虽然我的盒子每个Windows任务管理器大约5GB,但生产盒的容量<3GB。无论哪种方式,两个框都有内存可用(我的页面文件)。创建长度为256MB(268435456字节)的字节数组是否有超过256MB的开销? ASP.NET中是否存在继承限制?

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

1 个答案:

答案 0 :(得分:0)

内存不足导致异常,因为.net无法从大堆中分配足够的连续内存。即使您的系统有4GB的内存,用户空间也最多为2GB。

这适用于我的Windows 7 64位版本的Windows 4gb内存。