【发布时间】:2016-09-30 00:43:03
【问题描述】:
所以我想在内存不足的情况下测试我的 Windows 应用程序,我发现最简单的方法是创建另一个只占用内存的应用程序(控制台应用程序)。
我创造了这个怪物:
while (true)
{
try
{
Marshal.AllocHGlobal(1024);
}
catch{}
}
但它只能达到 3.7 GB。然后我打开这个应用程序的另一个实例,它又返回了。
如何防止垃圾收集器收集我的分配?
或者:如何在我的通用 Windows 应用程序上测试内存不足的情况?
【问题讨论】:
-
您是否必须编写自己的应用程序,那里有一些免费软件。例如TestLimit - how to use上的博客
-
您是否尝试过从您的机器中拉出内存 DIMM?保留运行操作系统所需的最低限度。
-
@NotMe 我只有 2 个 DIMM,但这是一个有趣的想法。
-
这种方式只能耗尽虚拟内存,不能耗尽物理内存。这应该没问题 - 虽然您需要先检查虚拟内存设置,设置一个合理的上限 - 但是当您说“它恢复正常”时,您可能测量的是错误的东西。
标签: c# windows memory win-universal-app allocation