在我的笔记本电脑上,运行64位的Windows 7操作系统并且有2GB的可用内存(根据任务管理器的报告),我可以执行以下操作:
var x = new Dictionary<Guid, decimal>( 30 * 1024 *1024 );
如果我手头没有更多RAM的电脑,我想知道这个程序是否可以在有4Gb可用内存的电脑上扩展,我将能够分配60M的项目而不是“仅仅”30M,等等?
或者说,除了不能分配大于2GB的单个对象外(受.Net和/或Windows限制),我还会遇到其他限制吗?
更新:好的,所以我不允许分配大于2GB的单个对象。这很重要!但是我当然很好奇,是否可以通过分配像这样的2GB块来完全利用所有内存:
var x = new List<Dictionary<Guid, decimal>>();
for ( var i = 0 ; i < 10 ; i++ )
x.Add( new Dictionary<Guid, decimal>( 30 * 1024 *1024 ) );
如果电脑有超过20GB的空余内存,这个方法是否可行?