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
Patricia Arquetteasal
2024-12-20 12:25:10250semak imbas

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;
}

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!

Kenyataan:
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