○CPUクロック数の累積カウンタの値を表示
電源ONからクロックがカウントされているカウンタの値を表示します
int _tmain(int argc, _TCHAR* argv[])
{
unsigned long h,l;
_asm {
cpuid
rdtsc
mov l, eax
mov h, edx
}
printf("%lu%lu\n",h,l);
getchar();
return 0;
}
○CPUのクロックを求める
多少の誤差が出ますがクロック周波数を表示します
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "winmm.lib")
int main(int argc, char* argv[])
{
unsigned long tS=timeGetTime()+2;
while(tS>timeGetTime()){}//カウンタの切りのいい時間まで待ちます
unsigned long s,e;
_asm {
cpuid
rdtsc
mov s, eax
}
unsigned long t=timeGetTime()+1000;
while(t>timeGetTime()){}//1秒カウンタ
_asm {
cpuid
rdtsc
mov e, eax
}
printf("%luMHz",(e-s)/(1000*1000));
return 0;
}
▲トップページ
>
Windows と C++