2010-06-10 19 views

Odpowiedz

6

http://dotnet-snippets.com/dns/get-the-cpu-speed-in-mhz-SID575.aspx

using System.Management; 

public uint CPUSpeed() 
{ 
    ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'"); 
    uint sp = (uint)(Mo["CurrentClockSpeed"]); 
    Mo.Dispose(); 
    return sp; 
} 

RAM można znaleźć w tym SO pytanie: How do you get total amount of RAM the computer has?

+0

Dzięki, użyłem tego kodu dla szybkości procesora. – edude05

+0

Nie wiem, czy klasa "ManagementObject" jest najlepszym sposobem, ponieważ zależy to od usługi Windows Management Instrumentation. Jeśli usługa została zatrzymana lub nie działa, Twój kod nie działałby zgodnie z oczekiwaniami. Wolałbym podejście licznika wydajności, ale chciałbym wiedzieć, jak powszechne jest wykorzystanie obiektu ManagementObject? –

2

Należy użyć PerformanceCounter klasę w System.Diagnostics

PerformanceCounter cpuCounter; 
PerformanceCounter ramCounter; 

cpuCounter = new PerformanceCounter(); 

cpuCounter.CategoryName = "Processor"; 
cpuCounter.CounterName = "% Processor Time"; 
cpuCounter.InstanceName = "_Total"; 

ramCounter = new PerformanceCounter("Memory", "Available MBytes"); 


public string getCurrentCpuUsage(){ 
      cpuCounter.NextValue()+"%"; 
} 

public string getAvailableRAM(){ 
      ramCounter.NextValue()+"MB"; 
} 
+3

Ten kod nie definiuje procesora i ilości pamięci RAM. Pokazuje ilość dostępnej (używanej) pamięci RAM (procesora). –

1

dużo o procesorze tym jego prędkości w MHz dostępny pod HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor

biegnę 2 Win7x64 szt iz jakiegoś powodu kwerendy WMI pokazuje numer niejasne pierwszy raz uruchomić kod i odpowiednią prędkość procesora drugi raz go uruchomić?

Kiedy przychodzi do liczników wydajności, ja dużo pracować z liczników w sieci i dostał dokładne wyniki i ostatecznie musiał znaleźć lepsze rozwiązanie, więc nie ufaj im!

+0

Wspominasz, że skończyło się na używaniu innego rozwiązania do monitorowania liczników sieci. Czy mógłbyś podzielić się tym, czego używałeś? –

+0

hej @JimScott, haha ​​całkiem stara historia naprawdę. Aplikacja wykonała pewne monitorowanie przepustowości w ramach swojej pracy. Wydaje mi się, że zauważyłem, że liczniki wydajności ** dla sieci ** były wyłączane w nagłych przypadkach i napisałem coś, co dawało mi średnio wiele połączeń w czasie. Mam nadzieję, że pomaga w twoim przypadku. – gideon

Powiązane problemy