klitzekleines c# programm, welches die cpu aktivität(en) ausliesst
da mein neues sandybridge system so prima läuft, wollte ich mal wissen wie es sich bei einigen spielen (insbes. gta 4) so schlägt.
nach nen bischen googlen hab ich mir diesen c#-code zusammengefrickelt und möchte den euch nicht vorenthalten. evntl. kann ja auch jemand von euch was damit anfangen.
ist eine einfache kommandozeilen app. am besten starten per
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace cpulog {
class cpulog {
static PerformanceCounter[] cpuCounter; // globaler PerformanceCounter
static int procCount;
static void InitialisierePerformanceCounter () // Initialisieren
{
procCount = Environment.ProcessorCount + 1;
cpuCounter = new PerformanceCounter[procCount];
for (int i = 0; i < procCount; i++) {
cpuCounter[i] = new PerformanceCounter ();
cpuCounter[i].CategoryName = "Processor";
cpuCounter[i].CounterName = "% Processor Time";
if (i == 0) {
cpuCounter[0].InstanceName = "_Total"; // "_Total" entspricht der gesamten CPU Auslastung, Bei Computern mit mehr als 1 logischem Prozessor: "0" dem ersten Core, "1" dem zweiten... }
}
else {
cpuCounter[i].InstanceName = (i - 1).ToString ();
}
}
}
static void GetCPUusage () // Liefert die aktuelle Auslastung zurück
{
// Console.Write (cpuCounter[0].NextValue ()); return;
for (int i = 0; i < procCount; i++) {
Console.Write (cpuCounter[i].NextValue());
Console.Write ("\t");
}
Console.Write ("\n");
}
static void Main (string[] args) {
InitialisierePerformanceCounter (); // Initialisieren
// foreach (var item in new System.Management.ManagementObjectSearcher ("Select * from Win32_ComputerSystem").Get ()) { Console.WriteLine ("Number Of Physical Processors: {0} ", item["NumberOfProcessors"]); }
Console.WriteLine ("Number Of Logical Processors: {0}", procCount -1);
while (true) {
GetCPUusage (); // CPU Auslastung in die Konsole schreiben
System.Threading.Thread.Sleep (1000); // 1 Sekunde warten
}
}
}
}
|