Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengukur Masa Perlaksanaan Fungsi C dengan Tepat?

Bagaimanakah Saya Boleh Mengukur Masa Perlaksanaan Fungsi C dengan Tepat?

DDD
Lepaskan: 2024-12-28 02:26:14
asal
716 orang telah melayarinya

How Can I Accurately Measure the Execution Time of a C   Function?

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:

  1. Tentukan fungsi untuk masa:
void timed_function() {
    // Your code to execute
}
Salin selepas log masuk
  1. Ukur masa pelaksanaan:
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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan