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
696 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!

sumber:php.cn
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