3

実際の経過時間 (ミリ秒) と CPU 時間 (ミリ秒) を測定することにより、C++ でいくつかのパフォーマンス測定を試みています。これは私のコードがどのように見えるかです:

auto start = std::chrono::high_resolution_clock::now();
unsigned begin = clock();

// some computationally expensive task

auto finish = std::chrono::high_resolution_clock::now();
unsigned end = clock();

(finish - start).count();

int duration = std::chrono::duration_cast<std::chrono::milliseconds>(finish - start).count();
int cpu_duration = 1000*(end - begin)/(CLOCKS_PER_SEC);

スレッドが中断される可能性があるため、CPU 時間の値がシステム時間よりも低くなると予想されます。ただし、CPU 時間は実際の時間よりも 2 ~ 3 倍高くなります。私は何か間違ったことをしていますか、それともCPU時間の概念を誤解していますか?

4

1 に答える 1