Sourcecodes - Frequenz des Prozessors ermitteln

Sprachenübersicht/C / C++/ C#/System

Frequenz des Prozessors ermitteln

Diese Seite wurde 2209 mal aufgerufen.

Diese Artikel wurde als uneditierbar gepostet, und darf, wenn nicht ausdrücklich erlaubt nicht auf anderen Seiten verbreitet, oder editiert werden! Printversion

Keywords: Takfrequenz des Prozessors herausfinden, programmieren, C++ Quellcode, sourcecode

Herzlichen Dank an Anton Staruschkin von www.cpp-programming.de/, für die Erlaubnis seine Quellcodes zu veröffentlichen.

Auf diese Weise kann man herausfinden wie viel Megahertz dein Prozessor ha

Code:


#include <windows.h>
#include <iostream>
using namespace std;

/*UINT64 rdtsc()   //Für MSV C++
{
    __asm _emit 0x0F
    __asm _emit 0x31
}*/

UINT64 rdtsc()     //Für Dev-C++
{
    UINT64 tmp;
    __asm volatile("rdtsc" : "=A" (tmp));
return tmp;
}


float GetCPUSpeed()
{
    LARGE_INTEGER liFreq, liTicks, liValue;
    UINT64        iTimestamp;
    float         fSpeed;    
    HANDLE        hThread;
    int           iPriority;
    
    hThread  = GetCurrentThread();
    iPriority = GetThreadPriority(hThread);
 
    QueryPerformanceFrequency(&liFreq);
 
    QueryPerformanceCounter(&liTicks);
    liValue.QuadPart = liTicks.QuadPart + liFreq.QuadPart;

    SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST);

    iTimestamp = rdtsc();

    do 
    {
      QueryPerformanceCounter(&liTicks);
    } while (liTicks.QuadPart <= liValue.QuadPart);

    fSpeed = (float)(int)(rdtsc() - iTimestamp)/ 1000000;
    SetThreadPriority(hThread, iPriority);

    return fSpeed;
}


int main()
{
  cout<<GetCPUSpeed()<<" MHz";
  cin.get();
return 0; 
}

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Sprachenübersicht/C / C++/ C#/System/Frequenz des Prozessors ermitteln