.NET内存限制

时间:2009-09-28 08:48:32

标签: c# memory-management

我已经编写了一个用于在磁盘或RAM上消耗内存的应用程序。这背后的原因是测试应用程序的某些部分如何在少量内存的情况下运行,并测试各种安装程序等,磁盘空间不足。它非常有用,但是目前我不得不将它们限制在2Gb。

不幸的是,有时候我需要消费的不仅仅是2Gb而且必须多次打开应用程序,这很烦人。那么简单,有没有办法解决32位操作系统的2Gb限制?

2 个答案:

答案 0 :(得分:3)

就占用磁盘空间而言,您可以通过创建多个文件而不是一个文件来超过2GB屏障。对于内存,您可能会考虑让进程自动生成足够的子进程来消耗您尝试吃的RAM量。

答案 1 :(得分:3)

对于磁盘上的文件,您不应该限制为2GB,磁盘使用的格式是什么?

  • FAT = 4GB
  • NTFS = 16TB

.NET内存模型受所有应用程序的限制。名义上,32位操作系统上每个应用程序的容量为2GB。有一些通用的选项可以让你增加这个。

  1. boot.ini中的/ 3GB开关将2Gb增加到3GB。
  2. PAE(物理地址扩展),允许您以页面切换方式访问4GB以上的内存。您通常需要自己编写支持(或者希望Microsoft在框架/ CLR中为您完成此操作)。
  3. 请参阅此detailed description选项(一般用于Windows)。