【发布时间】:2011-08-31 17:29:10
【问题描述】:
在我的笔记本电脑上,运行 64 位 Windows 7 和 2 Gb 可用内存(由任务管理器报告),我能够做到:
var x = new Dictionary<Guid, decimal>( 30 * 1024 *1024 );
如果我手头没有一台具有更多 RAM 的计算机,我想知道这是否会扩展,以便在具有 4 Gb 可用内存的计算机上,我将能够分配 60M 项而不是“仅”30M 等等开吗?
或者在我能够使用所有可用 RAM 之前,我会遇到其他限制(.Net 和/或 Windows)吗?
更新:好的,所以我不允许分配大于 2 Gb 的单个对象。知道这一点很重要!但是我当然很想知道我是否能够通过像这样分配 2 Gb 块来充分利用所有内存:
var x = new List<Dictionary<Guid, decimal>>();
for ( var i = 0 ; i < 10 ; i++ )
x.Add( new Dictionary<Guid, decimal>( 30 * 1024 *1024 ) );
如果计算机有 >20Gb 的可用内存,这会起作用吗?
【问题讨论】:
标签: c# .net windows memory-management 64-bit