【发布时间】:2011-01-18 03:31:23
【问题描述】:
我正在尝试重现一个似乎在用户用完大量 RAM 时出现的错误。限制计算机可以使用的可用 RAM 或填满大部分可用 RAM 的最佳方法是什么?我宁愿这样做,而无需物理删除内存,也无需运行一堆任意的、内存密集型程序(即 Photoshop、Quake 等)。
【问题讨论】:
标签: performance memory ram
我正在尝试重现一个似乎在用户用完大量 RAM 时出现的错误。限制计算机可以使用的可用 RAM 或填满大部分可用 RAM 的最佳方法是什么?我宁愿这样做,而无需物理删除内存,也无需运行一堆任意的、内存密集型程序(即 Photoshop、Quake 等)。
【问题讨论】:
标签: performance memory ram
使用虚拟机并在其上设置资源限制以模拟您想要的条件。
VMWare 是该领域的领导者之一,他们有一个free vmware player 可以让您做到这一点。
【讨论】:
使用job object 或ulimit(1)。
【讨论】:
我从一个类似的问题中复制my answer:
如果您正在测试本机/非托管/C++ 应用程序,您可以使用AppVerifier,它的低资源模拟设置将使用故障注入来模拟内存分配中的错误(以及许多其他事情)。它对于查找大量其他经常导致应用程序崩溃的微妙问题也非常有用。
您还可以使用consume.exe,它是Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Service Pack 1 的一部分,以轻松使用大量内存、磁盘空间、cpu 时间、页面文件或内核池,并查看您的应用程序如何处理可用资源的不足资源。 (它会崩溃吗?性能如何受到影响?等等)
【讨论】:
【讨论】:
如果您使用 Java 进行开发,您可以在启动时为 JVM 设置内存限制。
【讨论】: