Mengukur Masa Pelaksanaan Fungsi dalam C
Dalam C , mengukur masa pelaksanaan fungsi dengan tepat boleh mencabar disebabkan beban sistem variasi. Ini boleh membawa kepada hasil yang tidak boleh dipercayai apabila menggunakan kaedah standard seperti std::chrono::system_clock::now().
Pendekatan Alternatif Menggunakan Boost.Chrono
The Boost Pustaka Chrono menyediakan kaedah yang lebih tepat untuk mengukur masa pelaksanaan fungsi. Khususnya, fungsi process_user_cpu_clock menangkap masa CPU yang dibelanjakan oleh proses semasa.
Menggunakan process_user_cpu_clock
Untuk menggunakan process_user_cpu_clock, masukkan pengepala chrono dan ikuti langkah berikut:
void timed_function() { // Your code to execute }
using namespace boost::chrono; duration<double, std::milli> elapsed; auto start = process_user_cpu_clock(); timed_function(); auto end = process_user_cpu_clock(); elapsed = end - start;
Pembolehubah yang berlalu akan mengandungi tempoh fungsi bermasa dalam milisaat.
Jam Resolusi Tinggi dalam C 11
Jika menggunakan C 11 atau lebih baru, anda juga boleh menggunakan std::chrono::high_resolution_clock untuk pemasaan yang tepat. Penggunaannya serupa dengan Boost.Chrono, seperti yang ditunjukkan dalam contoh berikut:
using namespace std::chrono; using ms = milliseconds; auto t1 = high_resolution_clock::now(); timed_function(); auto t2 = high_resolution_clock::now(); duration<ms> elapsed = t2 - t1;
Perbandingan Kelajuan
Dengan menggunakan sama ada Boost.Chrono atau std::chrono ::high_resolution_clock, anda boleh mengukur dan membandingkan masa pelaksanaan fungsi dengan tepat untuk menentukan relatifnya laju.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Perlaksanaan Fungsi C dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!