Как улучшить производительность WMI в .NET?

Я унаследовал код, который делает многочисленные удаленные вызовы WMI. Когда я многократно приостанавливаю выполнение и смотрю на стек вызовов, он почти всегда находится в вызове ManagementScope.Connect(). Кажется, что новое соединение создается с каждым запросом WQL.

Несмотря на ограниченные пробные версии и ошибки, я еще не нашел больших выигрышей в улучшении производительности вызовов WMI.

Я пробовал кэшировать предыдущие результаты, повторно использовать соединения и избегать страшного "select *". Они не дали мне улучшения производительности, которые мне бы хотелось. Мне интересно понять влияние среды на производительность WMI, но код должен работать в самых разных средах, которые, вероятно, не поддаются моему контролю.

Если какой-либо вопрос, что делать, а не работать с высокопроизводительным WMI-доступом в .NET?

Ответ 1

Не моя область знаний, но это может помочь:

WMI: Улучшение производительности приложения WMI в сценарии вентиляции

"В этом блоге я расскажу о трех разных способах подключения к удаленному компьютеру с использованием WMI для выполнения нескольких операций WMI и их различий в производительности.