English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come calcolare il tempo di esecuzione di un segmento di codice in C++?

我们可以使用以下语法来计算代码片段的执行时间:

auto start = high_resolution_clock::now(); // Start time
//代码段
auto stop = high_resolution_clock::now(); // Ora di fermata
auto durata = duration_cast<microseconds>(stop - start); // Durata

La classe high_resolution_clock è definita nel file di intestazione 'chrono'. Questa funzionenow()Stiamo restituendo un valore corrispondente al punto di chiamata.

I file di intestazione vengono utilizzati per registrare il tempo impiegato da questo segmento di codice specifico.

#include <chrono>
using namespace std::chrono;

Di seguito è riportato un esempio di codice per calcolare il tempo di esecuzione di un segmento di codice.

Esempio

#include <iostream>
#include <chrono>
using namespace std::chrono;
using namespace std;
int sum(int x, int y) {
   int s = x + y;
   cout << "The sum of numbers: " << s;
}
int main() {
   auto start = high_resolution_clock::now();
   sum(28, 8);
   auto stop = high_resolution_clock::now();
   auto durata = duration_cast<microseconds>(stop - start);
   cout << "\nTime taken by function: " << duration.count() << " microseconds";
   return 0;
}

Risultato di output

The sum of numbers: 36
Tempo impiegato dalla funzione: 42 microsecondi

Nel programma sopra,sum();È stato definito un funzione per calcolare la somma dei numeri.

int sum(int x, int y) {
   int s = x + y;
   cout << "The sum of numbers: " << s;
}

Inmain();All'interno della funzione, noisum();Vengono registrati i tempi di esecuzione delle funzioni utilizzando alcune funzioni predefinite e la classe 'chrono'.

auto start = high_resolution_clock::now();
sum(28, 8);
auto stop = high_resolution_clock::now();
auto durata = duration_cast<microseconds>(stop - start);