【问题标题】:.NET Memory Limitations.NET 内存限制
【发布时间】:2009-09-28 16:59:32
【问题描述】:

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

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

【问题讨论】:

    标签: c# memory-management


    【解决方案1】:

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

    【讨论】:

    • 啊,原来如此。没想过使用单独的进程。
    【解决方案2】:

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

    • FAT = 4GB
    • NTFS = 16TB

    .NET 内存模型受到所有应用程序的相同限制。名义上这是 32 位操作系统上每个应用程序 2GB。有一些通用选项可以让您增加此值。

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

    请参阅此detailed description 选项(一般适用于 Windows)。

    【讨论】:

    • "或者希望微软已经在框架/CLR 中为你完成了它"。我记得读过他们没有。不过不记得出处了。
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 2021-11-15
    • 2016-11-26
    • 2010-09-17
    • 1970-01-01
    • 2013-03-29
    • 2011-08-31
    • 2010-09-26
    相关资源
    最近更新 更多