AppDomain的CPU和内存上限

时间:2010-09-15 12:02:38

标签: memory cpu appdomain

我想在appdomain中托管一个exe并为其分配CPU和内存上限,以便它不会使用超过指定的处理能力。这可能吗?怎么做?

4 个答案:

答案 0 :(得分:3)

据我所知,你不能直接限制最大内存。

但是,从.NET 4开始,如果AppDomain.MonitoringSurvivedMemorySize设置为AppDomaintrue属性中当前由{{1}}分配的内存可用。您可以启动监视程序线程来监视分配。

答案 1 :(得分:1)

答案 2 :(得分:0)

即使Windows性能监视器也不允许您通过AppDomain查看CPU使用情况 - 因为AppDomains是CLR的逻辑结构,并且操作系统不知道唯一的CPU使用情况跟踪处于进程级别 - 如果有一种方法可以限制你甚至无法监控的东西。

你想要这样做的原因究竟是什么?为什么您不希望您的应用程序使用它可用的所有资源?如果只是确保有足够的开销来运行其他进程的情况,你不能只是将线程的优先级设置得非常低并让Windows调度程序弄明白吗?

答案 3 :(得分:0)

我知道做这样的事情的唯一方法是使用HyperV(或类似产品)并将应用程序划分到不同的虚拟机中。但这并不是一个廉价或简单的解决方案。