我知道我可以查看某些计数器,例如内存使用情况,但我可以对单个应用程序域施加限制吗?
问问题
364 次
2 回答
3
我曾经在一个我们试图做类似事情的系统上工作。
使用常规的 .NET CLR,您只能获得非常粗糙的控件。您可以找出 AppDomain 正在使用多少内存,但它往往不是最新的,并且随着内存压力的增加 - 变得完全不可靠。
但是,如果您愿意达到通过 C++ 托管 CLR 并使用CLR Hosting APIs的水平,则可能有一种方法可以做到这一点。
我被告知可以做一些事情,例如拦截来自托管 CLR 的内存分配请求。您也可以限制 I/O 请求和 CPU 利用率。
于 2012-07-06T00:29:55.043 回答
2
不,没有内置机制来限制 .Net 应用程序在 AppDomain 级别(甚至在进程级别)上的任何资源使用。它包括内存使用率、网络使用率、CPU 使用率。
您可以在 AppDomains 的 .Net 级别上设置权限限制(代码访问安全),但控制量基本上停在那里。
唯一的内置机制是限制整个进程的内核使用 CPU。剩下的就交给申请处理了。
于 2012-07-06T00:12:39.203 回答