Я унаследовал код, который делает многочисленные удаленные вызовы WMI. Когда я многократно приостанавливаю выполнение и смотрю на стек вызовов, он почти всегда находится в вызове ManagementScope.Connect()
. Кажется, что новое соединение создается с каждым запросом WQL.
Несмотря на ограниченные пробные версии и ошибки, я еще не нашел больших выигрышей в улучшении производительности вызовов WMI.
Я пробовал кэшировать предыдущие результаты, повторно использовать соединения и избегать страшного "select *
". Они не дали мне улучшения производительности, которые мне бы хотелось. Мне интересно понять влияние среды на производительность WMI, но код должен работать в самых разных средах, которые, вероятно, не поддаются моему контролю.
Если какой-либо вопрос, что делать, а не работать с высокопроизводительным WMI-доступом в .NET?