Медленный WMI-запрос на Windows 2008R2 - PullRequest
0 голосов
/ 23 ноября 2011

Кто-нибудь получил какие-либо предложения по ускорению этого запроса WMI?Я обновляю клиентское приложение каждые 5 секунд, чтобы показать статистику процессора.В Windows 2003 это было намного быстрее, но для возврата целого числа из 4 ядер процессора требуется не менее 5 секунд:

Private Sub GetProcessorIdleTime(ByVal Server As String) 

        Dim searcher As New ManagementObjectSearcher("\\" & Server & "\root\CIMV2", "SELECT LoadPercentage FROM Win32_Processor")
        Dim collection As ManagementObjectCollection = searcher.[Get]()

        For Each row In collection
            TextBox1.Text = TextBox1.Text & vbCrLf & Convert.ToInt32(row("LoadPercentage"))
        Next

End Sub

Или есть лучший способ получить эту информацию удаленно?

1 Ответ

2 голосов
/ 08 декабря 2011

Чтобы повысить производительность, вы должны повторно использовать соединение WMI с удаленным сервером, установление соединения является одной из более дорогих задач при выполнении предложения WQL. В своем коде вы каждый раз устанавливаете новое удаленное WMI-соединение. Поэтому перепишите ваш код, создав новый метод для установки удаленного соединения, а затем повторно используйте (разделяйте) объект ManagementObjectSearcher в вашем методе GetProcessorIdleTime.

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