相关疑难解决方法(0)

在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

PS:垃圾收集没有帮助.

编辑,澄清我想要的:我编写了一个服务器应用程序,在写入数据库/磁盘之前处理大量数据.我没有为所有内容创建临时文件,而是编写了一个内存缓存,这使整个过程非常快.但记忆是有限的,所以我试图找出限制是什么.并且想知道为什么我的小测试程序在完全1,000 MB之后抛出了OutOfMemoryException.

.net c# memory out-of-memory large-object-heap

20
推荐指数
2
解决办法
2万
查看次数

关于大数组声明的OutOfMemoryException

我必须创建一个相当大的双阵列12000ish x 55000ish.不幸的是,我得到了一个内存不足的例外.我曾经用Java开发,可以改变内存设置.这可能与C#有关还是不可能?我正在使用VS 2008.

c#

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×2

.net ×1

large-object-heap ×1

memory ×1

out-of-memory ×1