c# - 我怎样才能占用内存来测试另一个应用程序?

标签 c# windows memory win-universal-app allocation

所以我想在低内存条件下测试我的 Windows 应用程序,我发现最简单的方法是创建另一个只占用内存的应用程序(控制台应用程序)。

我创造了这个怪物:

while (true)
{
    try
    {
        Marshal.AllocHGlobal(1024);
    }
    catch{}
}

但它只有 3.7 GB。然后我打开此应用程序的另一个实例,它又恢复正常。

如何防止垃圾收集器收集我的分配?

或者:如何在我的通用 Windows 应用程序上测试低内存条件?

最佳答案

您可以尝试将 GCSettings 延迟模式更改为 SustainedLowLatency,这将完全避免垃圾收集,除非系统将耗尽。

GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency;

关于c# - 我怎样才能占用内存来测试另一个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555250/

相关文章:

c# - 为什么我不能使用与数组声明分开的数组初始化语法?

c# - 如何在 Xamarin 中正确更新 Gtk#?

c# - 将信息传回控制台应用程序窗口的批处理

c# - 永远不会调用带有字符串参数的重载方法,而是调用带有对象参数的方法

c# - 在 "for"循环中,是否在每次迭代时重新评估终止条件?

c++ - 像 Photoshop 质量一样将 PDF 转换为 JPG - 商业 C++/Delphi 库

regex - 如何使用 PowerShell 删除与正则表达式匹配的文件夹中的文件?

c - 在同一内存空间中打开两个程序

c - 为什么我的 C 管道输出仍然产生垃圾数据?

c++ - 从缓冲区指针计算堆栈中的返回地址