最近做了一個項目,需要取得機器的CPU和memory的使用情況。花了一些時間上網搜尋了一下,自己也做了一些測試。總結下來,基本上2種方式:一種是用WMI(2種),另一種是用Performance counter。
1. Use WMI to create connection to the computer passing username and password. Once the connection is created, query the CPU& memory by passing the query, similar as SQL。 and local PC. For example:
System.Management.ConnectionOptions Conn = new ConnectionOptions();
Conn.Username = mpusername;
## string scopestring = "//" + mpserver + "/root/cimv2"; . Ms.Connect (); mos.Scope = Ms;ObjectQuery oq = new ObjectQuery(); ## mos.Query = oq; ManagementObjectCollection moc = mos.Get();
# ManagementObjectCollection moc = mos.Get();
# ,不能使用了,最後找到這個類別「Win32_PerfRawData_PerfOS_Memory」ManagementObjectCollection mcr = mcp.getQueryResult("select * from Win32_ComputerSystem") each (ManagementObject mo in mcr){
if (mo["TotalPhysicalMemory"] != null)totalm = long.Parse(mo["TotalPhysicalMemory"].ToString());
}# }# # ManagementObjectCollection moc = mcp.getQueryResult("select * from Win32_PerfRawData_PerfOS_Memory");{
string avilable = mo.GetPropertyValue("AvailableBytes").ToString(); avilablem = long.Parse(avilable);
}
## }
## , such as “ Win32_Processor”, “Win32_OperatingSystem”
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
get performance data passing the performance counter name, such as monitor.PerformanceCounterFun("Processor", "_Total", "% Processor Time"). Normally we shoud get performance counter data several times, then ue. ##
雖然這些比較簡單,但自己還是想把它記錄下來,希望對大家能有用!
以上是如何取得機器的memory和CPU資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!