Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erhalte ich die Speicher- und CPU-Informationen der Maschine?

Wie erhalte ich die Speicher- und CPU-Informationen der Maschine?

零下一度
零下一度Original
2017-06-23 16:09:201904Durchsuche

Ich habe kürzlich an einem Projekt gearbeitet, bei dem ich die CPU- und Speicherauslastung der Maschine ermitteln musste. Ich habe einige Zeit damit verbracht, online zu suchen und einige Tests selbst durchzuführen. Zusammenfassend gibt es grundsätzlich zwei Möglichkeiten: Eine besteht darin, WMI (zwei Typen) zu verwenden, und die andere darin, den Leistungsindikator zu verwenden.

1. Verwenden Sie WMI, um eine Verbindung zum Computer herzustellen. Sobald die Verbindung hergestellt ist, fragen Sie die CPU und den Speicher ab, indem Sie die Abfrage übergeben. Auf diese Weise können Sie CPU und Speicher für den Remote-PC abrufen und lokaler PC. Zum Beispiel:

System.Management.ConnectionOptions Conn = new ConnectionOptions();

Conn.Username = mpusername;

      Conn.Password = mppwd;

stringscopestring = "//" + mpserver + "/root/cimv2";

System.Management.ManagementScope Ms = new ManagementScope(scopestring);

Ms.Connect ();

mos.Scope = Ms;

ObjectQuery oq = new ObjectQuery();

oq.QueryString = "select * from Win32_Processor";

                                                                  mos. , kann nicht verwendet werden, und habe schließlich diese Klasse „Win32_PerfRawData_PerfOS_Memory“ gefunden

ManagementObjectCollection mcr = mcp.getQueryResult("select * from Win32_ComputerSystem"); 🎜>                                                                                                                                                                                                                                                     &                                                                                                                                                  > ManagementObjectCollection moc = mcp.getQueryResult("select * from Win32_PerfRawData_PerfOS_Memory");

foreach (ManagementObject mo in moc)

{

string avilable = mo.GetPropertyValue("AvailableBytes").ToString();

avilablem = long.Parse(avilable);

}




2. Rufen Sie die CPU- und Speicherinformationen des lokalen Servers ab, indem Sie die WMI-Klassen übergeben, z. B. „Win32_Processor“, „Win32_OperatingSystem“

ManagementClass mc = new ManagementClass("Win32_OperatingSystem");

ManagementObjectCollection moc = mc.GetInstances();

3. Verwenden Sie den Leistungsindikator, um Leistungsdaten abzurufen, die den Leistungsindikator passieren Name, wie zum Beispiel monitor.PerformanceCounterFun("Processor", "_Total", "% Processor Time"). Normalerweise sollten wir Leistungsindikatordaten mehrmals abrufen und dann die Durchschnittswerte verwenden.



Obwohl diese relativ einfach sind, möchte ich sie dennoch aufzeichnen und hoffe, dass sie für alle nützlich sein können!

Das obige ist der detaillierte Inhalt vonWie erhalte ich die Speicher- und CPU-Informationen der Maschine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn