gpt4 book ai didi

c# - 设置人工​​内存限制

转载 作者:行者123 更新时间:2023-11-30 18:33:12 25 4
gpt4 key购买 nike

我正在编写一个小的 PerformanceTest 程序,我试图人为地限制测试期间可以使用的内存。在处理高达约 100 GB 的多分辨率图像时,一些测试需要几个小时才能运行。

理想的做法是为每个线程设置限制,但我认为这行不通。测试在单独的进程或单独的 AppDomain 中执行。我知道如何使用 ARM 和 ETW 监视(但不限制)AppDomain 的资源,并且我尝试在进程级别设置 MaxWorkingSet,但这在系统内存承受压力之前没有任何效果。

当然,还有其他方法和变通方法可以实现此目的,例如通过在 VM 中运行测试或在启动选项上限制 Windows 内存。启动第二个分配大量内存的进程。

是否有任何方法可以人为地限制进程/AppDomain 可以使用的物理内存,即使系统上有可用的物理内存?是否也可以限制虚拟内存?

最佳答案

不知道有任何此类功能可用,但我会限制内存消耗(与使用情况相反)。

因此,当您开始测试时,它会有一个计数器,记录它可以创建和操作的对象/线程数量。如果计数器值达到其最大允许值,测试将等待,直到其中一个线程/对象完成作业。

如果你使用 Parallel 类,你可以 set the max degree of parallelisation

关于c# - 设置人工​​内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com