Powershell. C # Измерение использования памяти хоста powershell - PullRequest
1 голос
/ 01 мая 2009

Я автоматизирую использование сценариев powershell из C #, используя асинхронный конвейер powershell, и замечаю, что когда я выполняю сценарий снова и снова, используя одно и то же пространство выполнения, использование памяти <scriptname>.vhost.exe увеличивается и увеличивается и не хватило бы памяти после нескольких дней операций.

Есть ли способ измерить, сколько памяти было востребовано пространством выполнения, или даже так, как вы это измерили бы. Я знаю, что мог бы подготовить специальный скрипт, который вызывался бы в WMI, и который возвращал бы список процессов, я мог бы искать правильный vhost, а затем подстроковать конкретную строку, но я думаю, что это только добавление к пробе.

Я думал, что, возможно, класс runspaceconfiguration или переменная $ host предложат суммирование, но я ничего не вижу.

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

26.05.2009

Что я действительно хочу знать, так это то, как используется память, когда выполнение нескольких сценариев в течение длительных периодов влияет на память времени выполнения. По сути, у меня есть механизм исполнения, который управляется правилами. Когда правило срабатывает, иногда выполняется скрипт. Каждый rulebase (набор правил) будет иметь свой собственный хост PowerShell. Вопрос в том, если я выполню несколько сценариев, как это отразится на памяти текущего домена приложения. Будет ли лучше сбросить хост в другом домене приложения или он настроит время выполнения вне текущего стандартного способа c #. Проблема в том, что у них такой недостаток хороших документов. По сути, я хочу быть уверенным, что они не накапливают использование памяти при повторном использовании. Если я запускаю его в удаленный домен, то, по крайней мере, когда он достигнет определенного размера, я могу сбросить его и создать заново.

Что ты думаешь?

Ответы [ 2 ]

1 голос
/ 01 мая 2009

Одной из первых областей, которые следует проверить, будет то, что любые объекты, которые вы создаете в этом пространстве выполнения, разыменовываются (без переменных, указывающих на них), поэтому они могут быть собраны мусором.

Подобная проблема может возникнуть в консоли PowerShell, и Я писал об этой проблеме здесь .

0 голосов
/ 01 мая 2009

Я думаю, вам нужно будет опубликовать фрагмент кода о том, как именно вы используете объекты powerscript для этого.

Кроме того, VSHost является только хост-процессом, когда вы работаете из IDE (другими словами, отладка). У вас такая же ситуация при запуске приложения вне IDE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...