経過時間を簡単に測定する
質問:
を使用してプログラムの経過時間を測定する場合time()、前後の値が残るのはなぜですか同じですか?
説明:
time() は、エポックからの現在時刻を秒単位で返します。測定する時間が短い場合、前後の値の差が小さすぎて検出できない可能性があります。
解決策:
短い時間を正確に測定するにはタイムスパンについては、代替方法の使用を検討してください:
C Structured Time測定:
struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Execute time-consuming tasks gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec);
C 11 スタイルの精度時間測定:
#include <chrono> std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); // Execute time-consuming tasks 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;
以上が`time()` が短いタスクの前後で同じ値を返す場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。