私のコードで特定の関数を実行するのにかかる時間を測定しようとしました。当初、私はその後、私はC++11
にchrono
ライブラリについて読んで最初のコードで測定しclockとsteady_clockで測定した時間の差
using namespace std::chrono;
auto start = steady_clock::now();
do_something();
auto end = steady_clock::now();
printf("Time taken: %lld ms\n", duration_cast<milliseconds>(end - start).count());
時間以下のようにstd::chrono::steady_clock
と同じ測定を試みた
clock_t start = clock();
do_something();
clock_t end = clock();
printf("Time taken: %f ms\n", ((double) end - start)*1000/CLOCKS_PER_SEC);
以下のようにclock()
機能を使用しましたスニペット(clock
を使用)は89.53 ms
であり、steady_clock
で測定されたスニペットは1140 ms
でした。
なぜ、両方の時計で測定された時間に大きな違いがありますか?
可能であれば、[mcve]を作成できますか? – Rakete1111
@ Rakete1111:問題が再現可能な小さなテストケースへの[link](http://coliru.stacked-crooked.com/a/9f74e57079978629)です。 –