2011-11-23 72 views
0

有沒有人有任何建議來加快此WMI查詢?我每5秒更新一次客戶端應用程序以顯示CPU統計信息。這是在Windows 2003上更快,但需要至少5秒鐘返回4 CPU內核的整數Windows 2008R2上的緩慢WMI請求

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 

還是有更好的方式來遠程retrive這個信息?

回答

2

爲了提高性能,您必須重新使用WMI連接到遠程服務器,建立連接是執行WQL語句時更昂貴的任務之一。 在您的代碼中,您每次都要設置一個新的WMI遠程連接。因此,重寫您的代碼,創建一個新方法來建立遠程連接,然後在您的GetProcessorIdleTime方法中重用(共享)ManagementObjectSearcher對象。