Tag: 超出内存的

在32位.NET进程中分配超过1,000 MB的内存

我想知道为什么我无法在32位.NET进程中分配超过1,000 MB的内存。 以下迷你应用程序在分配1,000 MB后抛出OutOfMemoryException。 为什么1,000 MB,而不是说1.8 GB? 我可以改变流程范围的设置吗? static void Main(string[] args) { ArrayList list = new ArrayList(); int i = 0; while (true) { list.Add(new byte[1024 * 1024 * 10]); // 10 MB i += 10; Console.WriteLine(i); } } PS:垃圾收集没有帮助。 编辑,澄清我想要的:我编写了一个服务器应用程序,在写入数据库/磁盘之前处理大量数据。 我没有为所有内容创建临时文件,而是编写了一个内存缓存,这使得整个过程非常快。 但记忆是有限的,所以我试图找出限制是什么。 并且想知道为什么我的小测试程序在1,000 MB之后抛出了OutOfMemoryException。