如何限制RAM以测试低内存情况?

10

我正在尝试复现一个看起来会在用户使用大量RAM时出现的bug。有什么最好的方法可以限制计算机可用的RAM,或者将大部分RAM填满?我希望在不物理地移除内存和运行一堆任意的、占用大量内存的程序(如Photoshop、Quake等)的情况下进行。

5个回答

11

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

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


11

我从一道类似的问题中复制了我的回答:

如果您正在测试本地/非托管/C++应用程序,可以使用AppVerifier及其低资源模拟设置,该设置将使用故障注入来模拟内存分配错误(以及许多其他细微问题)。它还非常有用,可以找到导致应用程序崩溃的许多其他微妙问题。

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


+1 for consume.exe,我以前从未听说过它。我不打算告诉我的测试人员,否则他们可能会对此疯狂抱怨,认为我的代码在只有16MB RAM和CPU疯狂运转时无法正常工作 :) - slugster

3

1

创建一个虚拟机并将内存设置为所需的大小。

我使用的是 SUN 的 Virtual Box。

http://www.virtualbox.org/

这很容易设置。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接