Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengukur Masa Berlalu dengan Tepat dalam C dan C?
Pengukuran Masa Berlalu yang Cekap dalam C dan C
Mengukur masa berlalu dengan tepat adalah penting untuk analisis prestasi dalam pengaturcaraan. Walau bagaimanapun, fungsi C standard time() boleh menjadi tidak boleh dipercayai untuk tugasan jangka pendek.
Menggunakan gettimeofday() dalam C
Untuk menangani isu ini, pengaturcara C boleh gunakan fungsi gettimeofday(), yang mengembalikan masa semasa dengan ketepatan mikrosaat. Berikut ialah contoh:
#include <sys/time.h> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);
Menggunakan std::chrono dalam C
Dalam C , perpustakaan std::chrono menyediakan penyelesaian yang lebih moden dan mudah alih untuk mengukur masa berlalu. Pertimbangkan contoh ini:
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double, nano> diff = end - begin; cout << "Time taken: " << diff.count() << " nanoseconds" << endl;
Memahami Keputusan
Keluaran gettimeofday() dan std::chrono akan mengembalikan perbezaan masa dalam saat dan mikrosaat/ nanosaat. Contohnya:
Dalam contoh pertama, masa berlalu ialah 4.025 saat, manakala dalam contoh kedua, ia ialah 0.026339 saat. Ambil perhatian bahawa std::chrono mengembalikan nanosaat secara lalai, jadi anda mungkin perlu menukarnya kepada mikrosaat atau saat secara manual jika mahu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Berlalu dengan Tepat dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!