我有一个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(无限制)
答案 0 :(得分:0)
内存不足导致异常,因为.net无法从大堆中分配足够的连续内存。即使您的系统有4GB的内存,用户空间也最多为2GB。
这适用于我的Windows 7 64位版本的Windows 4gb内存。