2009-09-28 80 views
0

我已经写了一个应用程序,用于在磁盘或RAM上占用内存。这背后的原因是测试应用程序的某些部分如何以少量内存运行,并以较低的磁盘空间测试各种安装程序等。这非常有用,但是现在我不得不将它们限制在2Gb。.NET内存限制

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

回答

3

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

+0

啊,那是真的。没有想过使用单独的过程。 – Ian 2009-09-28 08:53:07

3

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

  • FAT = 4GB
  • NTFS = 16TB

在.NET存储器模型是受所有应用程序的相同限制。名义上,这是在32位操作系统上的每个应用程序2GB。有一些通用选项可能会允许您增加此选项。

  1. boot.ini中的/ 3GB开关将2Gb增加到3GB。
  2. PAE(物理地址扩展)允许您在页面切换方法中访问4GB以上的内存。您通常需要自己编写对此的支持(或希望Microsoft在框架/ CLR中为您完成)。

查看此选项的detailed description(适用于Windows)。

+0

“或者希望微软在框架/ CLR中为你做到这一点”。我记得他们没有读过。虽然不记得来源。 – Joren 2009-09-28 09:01:02