実際の経過時間 (ミリ秒) と 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時間の概念を誤解していますか?