10

我正在尝试重现当用户用完一堆 RAM 时似乎出现的错误。限制计算机可以使用的可用 RAM 或填满大部分可用 RAM 的最佳方法是什么?我宁愿在不物理删除内存和运行一堆任意的、内存密集型程序(即,Photoshop、Quake 等)的情况下执行此操作。

4

5 回答 5

11

使用虚拟机并在其上设置资源限制以模拟您想要的条件。

VMWare 是该领域的领导者之一,他们有一个免费的 vmware 播放器可以让您做到这一点。

于 2010-02-18T01:25:39.313 回答
11

我正在从一个类似的问题中复制我的答案:

如果您正在测试本机/非托管/C++ 应用程序,您可以使用AppVerifier和它的低资源模拟设置,它将使用故障注入来模拟内存分配中的错误(以及许多其他事情)。它对于查找大量其他经常导致应用程序崩溃的微妙问题也非常有用。

您还可以使用 consume.exe,它是适用于 Windows 7 和 .NET Framework 3.5 Service Pack 1 的 Microsoft Windows SDK 的一部分,可轻松使用大量内存、磁盘空间、cpu 时间、页面文件或内核池,并查看您的应用程序如何处理可用资源的不足。(它会崩溃吗?性能如何受到影响?等等)

于 2010-02-18T01:27:28.823 回答
3

使用作业对象ulimit(1).

于 2010-02-18T01:26:54.600 回答
1

创建一个虚拟机并将 ram 设置为您需要的。

我使用的是 SUN 的 Virtual Box。

http://www.virtualbox.org/

它很容易设置。

于 2010-02-18T01:27:33.973 回答
0

如果您使用 Java 进行开发,您可以在启动时为 JVM 设置内存限制。

于 2010-02-18T01:31:47.710 回答