使用しようとしています時間()プログラムのさまざまなポイントを測定するためです。
理解できないのは、なぜ前と後の値が同じなのかということです。これはプログラムをプロファイリングする最良の方法ではないことは理解していますが、何かにどれくらいの時間がかかるかを確認したいだけです。
printf("**MyProgram::before time= %ld\n", time(NULL));
doSomthing();
doSomthingLong();
printf("**MyProgram::after time= %ld\n", time(NULL));
私が試してみました:
struct timeval diff, startTV, endTV;
gettimeofday(&startTV, NULL);
doSomething();
doSomethingLong();
gettimeofday(&endTV, NULL);
timersub(&endTV, &startTV, &diff);
printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec);
の結果をどのように読み取ればよいですか**time taken = 0 26339
? これは 26,339 ナノ秒 = 26.3 ミリ秒を意味しますか?
はどうですか**time taken = 4 45025
、それは 4 秒と 25 ミリ秒を意味しますか?
ベストアンサー1
//***C++11 Style:***
#include <chrono>
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << "[µs]" << std::endl;
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds> (end - begin).count() << "[ns]" << std::endl;