2009-06-25 38 views
11

我已經繼承了許多遠程WMI調用的代碼。當我重複暫停執行並查看調用堆棧時,它幾乎總是在調用ManagementScope.Connect()。每個WQL查詢似乎都有一個新的連接。如何提高.NET中的WMI性能?

儘管嘗試和錯誤有限,但在改善WMI調用的性能方面我還沒有找到任何重大勝利。

我試過緩存以前的結果,重用連接,並避免了可怕的「select *」。這些並沒有給我提供我想要的性能改進。我有興趣瞭解環境對WMI性能的影響,但代碼需要運行在各種可能超出我的控制範圍的環境中。

如果有,在.NET中面向性能的WMI訪問的做什麼和不做什麼?

+0

您是否正在對同一臺機器或多臺機器進行多次調用?如果是後者,你有沒有考慮過多線程? – serialhobbyist 2009-07-01 12:44:00

+0

現在它是同一臺機器;該代碼用於自動遠程安裝。代碼首先確定已安裝的依賴關係,查詢操作系統(確定處理器體系結構,系統目錄,程序文件目錄,操作系統版本等);它會執行此操作來配置安裝,然後使用WMI啓動並監視安裝。已經有一項功能請求使它們能夠排隊並且平行運行(例如,一次5個)。好建議。 – devgeezer 2009-07-06 14:13:14

回答