2010-09-15 3 views
13

Я хочу разместить exe в appdomain и назначить ему процессор и память, чтобы он не использовал больше, чем назначенная вычислительная мощность. Можно ли это делать и как?CPU и Memory Cap для AppDomain

ответ

0

Даже мониторы производительности Windows не позволяют просматривать использование процессора AppDomain - поскольку AppDomains являются логическими конструкциями CLR и не известны ОС, единственное отслеживание использования ЦП на уровне процесса - я был бы шокирован если есть способ ограничить то, что вы даже не можете контролировать.

Что именно вы хотите сделать? Почему вы не хотите, чтобы ваше приложение использовало все доступные ему ресурсы? Если это просто случай убедиться, что для запуска других процессов достаточно накладных расходов, вы не можете просто установить приоритет потоков очень низко и позволить планировщику Windows понять это?

0

Единственный способ, которым я знаю, что-то подобное использовать HyperV (или подобные продукты) и разбиение ваших приложений на разные виртуальные машины. Но это не совсем дешевое или простое решение.

3

Вы не можете ограничить максимальную память непосредственно, насколько я знаю.

Однако, с .NET 4 на память в данный момент выделено с помощью AppDomain доступен в AppDomain.MonitoringSurvivedMemorySize собственности, если AppDomain.MonitoringIsEnabled установлен в true. Вы можете развернуть сторожевую нить, чтобы контролировать распределение.

 Смежные вопросы

  • Нет связанных вопросов^_^