Latar Belakang
Menentukan masa pelaksanaan fungsi tertentu dalam C boleh penting untuk analisis dan pengoptimuman prestasi. Native Linux menyediakan pilihan terhad untuk mengukur masa dengan tepat, dan fungsi process_user_cpu_clock daripada Boost.Chrono hanya menyasarkan masa CPU pengguna, tidak merangkumi keseluruhan masa pelaksanaan fungsi.
Penyelesaian yang Lebih Tepat
Nasib baik, C 11 memperkenalkan ciri pengukuran masa serba boleh melalui std::chrono::high_resolution_clock daripada
Contoh Kod
#include <chrono> /* Only for this example. */ #include <iostream> #include <thread> void long_operation() { /* Simulating a long, intensive operation. */ using namespace std::chrono_literals; std::this_thread::sleep_for(150ms); } int main() { using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::duration; using std::chrono::milliseconds; auto t1 = high_resolution_clock::now(); long_operation(); auto t2 = high_resolution_clock::now(); /* Milliseconds as an integer. */ auto ms_int = duration_cast<milliseconds>(t2 - t1); /* Milliseconds as a double. */ duration<double, std::milli> ms_double = t2 - t1; std::cout << ms_int.count() << "ms\n"; std::cout << ms_double.count() << "ms\n"; return 0; }
Coretan kod ini menunjukkan cara menggunakan high_resolution_clock untuk mengukur tempoh fungsi long_operation. Pembolehubah t1 dan t2 merekodkan setem masa sebelum dan selepas melaksanakan fungsi, dan perbezaannya ditukar kepada milisaat untuk paparan.
Dengan menggunakan teknik ini, anda boleh memperoleh ukuran masa pelaksanaan fungsi yang tepat dan konsisten, tanpa mengira Variasi beban CPU, memastikan penilaian prestasi yang boleh dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi dengan Tepat dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!