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

Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi dengan Tepat dalam C?

Patricia Arquette
Lepaskan: 2024-12-20 12:25:10
asal
248 orang telah melayarinya

How Can I Accurately Measure Function Execution Time in C  ?

Mengukur Masa Perlaksanaan Fungsi Dengan Tepat dalam C

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 pengepala. Jam resolusi tinggi ini menyediakan ukuran masa pelaksanaan fungsi yang tepat dan komprehensif.

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan