Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi C?
Dalam pengaturcaraan C, mengukur masa pelaksanaan fungsi boleh dicapai dengan berkesan. Pustaka Boost.Chrono menawarkan fungsi process_user_cpu_clock(), yang menangkap masa CPU pengguna yang digunakan oleh proses semasa. Fungsi ini, bersama-sama kaedah alternatif, memberikan cerapan berharga untuk pengoptimuman prestasi.
Menggunakan process_user_cpu_clock() dalam Boost.Chrono adalah mudah. Berikut ialah contoh:
#include <boost/chrono.hpp> #include <iostream> void long_operation() { // Simulating a long operation boost::chrono::process_user_cpu_clock timer; while (timer.seconds() < 1) { } } int main() { boost::chrono::process_user_cpu_clock start; long_operation(); boost::chrono::process_user_cpu_clock stop; std::cout << "Execution time: " << (stop - start).seconds() << " seconds" << std::endl; return 0; }
Dalam C 11, std::chrono::high_resolution_clock() daripada Kedua-dua kaedah menawarkan ukuran yang boleh dipercayai. std::chrono::high_resolution_clock() ialah pilihan pilihan untuk mengukur tempoh fungsi tertentu. Boost.Chrono menyediakan ciri tambahan, seperti pemasaan urutan dan pemasa konteks. Dengan menggunakan kaedah ini, pembangun boleh menentukan masa pelaksanaan fungsi dengan berkesan, yang membawa kepada pengoptimuman dan cekap dengan baik Program C. Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!#include <chrono>
#include <iostream>
void long_operation() {
// Simulating a long operation
std::chrono::high_resolution_clock timer;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main() {
std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now();
long_operation();
std::chrono::high_resolution_clock::time_point stop = std::chrono::high_resolution_clock::now();
std::cout << "Execution time: " << std::chrono::duration_cast<std::chrono::milliseconds>(stop - start).count() << " milliseconds" << std::endl;
return 0;
}
Perbandingan Prestasi
Kesimpulan