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

Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Coretan Kod C dengan Tepat?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 15:00:16199semak imbas

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

Cara Mengira Masa Pelaksanaan Coretan Kod Dengan Tepat dalam C

Mengukur masa pelaksanaan coretan kod adalah penting apabila mengoptimumkan prestasi kod. Artikel ini meneroka cara mengira masa pelaksanaan coretan kod C dengan berkesan, memastikan ketepatan walaupun untuk penyataan pendek atau input kecil.

Keterbatasan Jam:

Jam () fungsi, walaupun digunakan secara meluas, mempunyai had apabila mengukur tempoh pendek. Ia mengembalikan masa CPU yang digunakan oleh proses, yang boleh menjadi kasar dan menghasilkan hasil "0 saat" untuk tugasan ringkas.

Penyelesaian: Menggunakan GetTimeMs64() Fungsi:

Untuk mengatasi had ini, fungsi GetTimeMs64() menyediakan ukuran masa berlalu yang lebih tepat. Ia menggunakan jam sistem pada kedua-dua Windows dan Linux, memberikan hasil yang tepat walaupun untuk tempoh minit.

Butiran Pelaksanaan:

Fungsi GetTimeMs64() memperoleh bilangan milisaat sejak zaman UNIX. Ia berfungsi dengan:

  • Windows:

    • Mengambil masa sistem sebagai FILETIME dan menukarkannya kepada struktur LARGE_INTEGER.
    • Laraskan hasil agar sepadan dengan masa zaman UNIX masuk milisaat.
  • Linux:

    • Memperoleh masa semasa menggunakan gettimeofday().
    • Menukar nilai mikrosaat kepada milisaat.
    • Menambah saat nilai, juga ditukar kepada milisaat.

Penggunaan:

Untuk mengukur masa pelaksanaan coretan kod menggunakan GetTimeMs64() fungsi:

  1. Sertakan Fail pengepala GetTimeMs64.h.
  2. Panggil GetTimeMs64() sebelum melaksanakan coretan kod.
  3. Panggil GetTimeMs64() sekali lagi selepas coretan kod selesai pelaksanaan.
  4. Calculate the elapte time dengan menolak masa awal daripada perlawanan akhir masa.

Kelebihan GetTimeMs64() Fungsi:

  • Ketepatan: Memberikan hasil yang lebih tepat, terutamanya untuk tempoh yang singkat .
  • Rentas Platform: Berfungsi dengan berkesan pada kedua-dua sistem Windows dan Linux.
  • Keselamatan Benang: Selamat digunakan dalam persekitaran berbilang benang.

Pertimbangan:

  • Perincian masa untuk GetTimeMs64() biasanya 15 ms pada Windows dan mungkin berbeza pada Linux.
  • Fungsi ini mengukur masa jam dinding yang telah berlalu, yang mungkin termasuk kelewatan berkaitan sistem.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Coretan Kod C dengan Tepat?. 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