のりおくれたー


cppll_noviceに今日流れてたStackとHeapの測定は面白かったなー
参加したかったけど仕事してました。

一応測定ネタとして。
Windowsの場合は以下のAPIを使用して計測するのが良いです。
SetThreadAffinityMask ← 実行するプロセッサを固定するために使用する
QueryPerformanceFrequency ← 高分解能パフォーマンスカウンタが存在する場合、そのカウンタの周波数(更新頻度)を取得する
QueryPerformanceCounter ← 高分解能パフォーマンスカウンタが存在する場合、そのカウンタの現在の値を取得する


#include
#include

int main(int argc, char** argv)
{
LARGE_INTEGER start;
LARGE_INTEGER end;
LARGE_INTEGER freq;

if (SetThreadAffinityMask(GetCurrentThread(), 1) != 0)
{
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
// 計測したい処理
QueryPerformanceCounter(&end);

DWORD time = (end.QuadPart - start.QuadPart) * 1000 / freq.QuadPart;
std::cout << "time: " << time << "ms" << std::endl;
}
return 0;
}



Linux/Solarisの場合はgettimeofdayを使うのが良いみたいです。
眠いのでこっちはコード書きません。。