【发布时间】:2013-07-17 03:29:17
【问题描述】:
我正在编写一个小的 PerformanceTest 程序,并尝试人为地限制可在测试期间使用的内存。在处理高达 100 GB 的多分辨率图像时,一些测试需要几个小时才能运行。
理想的做法是为每个线程设置限制,但我认为这行不通。测试在单独的进程或单独的 AppDomain 中执行。我知道如何使用 ARM 和 ETW 监控(但不限制)AppDomain 的资源,并且我尝试在进程级别设置 MaxWorkingSet,但这在系统内存处于压力之下之前无效。
当然,还有其他方法和变通方法可以完成此操作,例如通过在 VM 中运行测试或在启动选项上限制 Windows 内存。启动分配大量内存的第二个进程。
即使系统上有可用的可用物理内存,是否有任何方法可以人为地限制进程/AppDomain 可以使用的物理内存?是否也可以限制虚拟内存?
【问题讨论】:
标签: c# .net memory memory-management