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

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

Linda Hamilton
Lepaskan: 2024-11-28 13:58:12
asal
1008 orang telah melayarinya

How Can I Precisely Measure Code Execution Time in C  ?

Mengukur Masa Pelaksanaan dengan Ketepatan dalam C

Pengukuran masa pelaksanaan yang tepat adalah penting dalam mengoptimumkan prestasi kod. Dalam C , fungsi clock() menyediakan cara untuk mengira masa berlalu. Walau bagaimanapun, ia boleh mengembalikan hasil yang tidak boleh dipercayai dengan coretan kod pendek.

Penghadan jam()

Untuk input kecil atau pernyataan satu baris, clock() selalunya melaporkan pelaksanaan kali "0 saat." Percanggahan ini timbul kerana fungsi clock() mempunyai butiran milisaat atau nanosaat, bergantung pada sistem. Untuk tempoh pelaksanaan yang lebih pendek daripada butiran ini, clock() dibundarkan ke bawah kepada sifar.

Penyelesaian: Menggunakan GetTimeMs64()

Untuk mengatasi had ini, pertimbangkan untuk menggunakan fungsi utiliti GetTimeMs64(). Fungsi ini mengukur masa berlalu dengan tepat sejak zaman Unix, dalam milisaat dan berfungsi pada kedua-dua platform Windows dan Linux.

Fungsi GetTimeMs64() menggunakan jam sistem pada Windows menggunakan GetSystemTimeAsFileTime(). Di Linux, ia menggunakan gettimeofday() untuk mendapatkan masa semasa. Ia menukar nilai yang diperoleh kepada milisaat dan menolak offset daripada zaman Unix untuk diselaraskan dengan standard masa Unix.

Pelaksanaan

Untuk menggunakan GetTimeMs64(), cuma masukkan kod berikut dalam atur cara anda:

#include <Windows.h>
// or
#include <sys/time.h>
#include <ctime>

uint64 GetTimeMs64()
{
    // Code from provided solution goes here
}
Salin selepas log masuk

Untuk mengira masa pelaksanaan sesuatu coretan kod:

  1. Panggil GetTimeMs64() sebelum melaksanakan kod.
  2. Laksanakan kod.
  3. Panggil GetTimeMs64() sekali lagi selepas melaksanakan kod.
  4. Tolak kali pertama daripada kali kedua untuk mendapatkan masa berlalu masuk milisaat.

Contoh Penggunaan:

uint64 startTime = GetTimeMs64();
// Your code here
uint64 endTime = GetTimeMs64();
cout << "Execution time: " << (endTime - startTime) / 1000.0 << " seconds" << endl;
Salin selepas log masuk

Kaedah ini menyediakan ukuran masa pelaksanaan yang tepat walaupun untuk coretan kod kecil atau pernyataan pendek. Ia membolehkan pembangun mengoptimumkan kod mereka dengan berkesan dan mengukur peningkatan prestasi dengan tepat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Kod 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