Mudah Mengukur Masa Berlalu
Soalan:
Apabila mengukur masa berlalu dalam atur cara menggunakan time(), mengapa nilai sebelum dan selepas boleh kekal sebagai sama?
Penjelasan:
masa() mengembalikan masa semasa dalam beberapa saat sejak Epoch. Jika jangka masa untuk diukur adalah pendek, perbezaan antara nilai sebelum dan selepas mungkin terlalu kecil untuk dikesan.
Penyelesaian:
Untuk mengukur pendek dengan tepat jangka masa, pertimbangkan untuk menggunakan kaedah alternatif:
C Masa Berstruktur Pengukuran:
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);
Pengukuran Masa Ketepatan Gaya 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;
Atas ialah kandungan terperinci Mengapakah `masa()` Kadangkala Mengembalikan Nilai Yang Sama Sebelum dan Selepas Tugasan Singkat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!