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