Computer >> Máy Tính >  >> Lập trình >> C ++

Cách tính thời gian thực thi của đoạn mã trong C ++?

Chúng tôi có thể tính toán thời gian thực thi của một đoạn mã bằng cách sử dụng cú pháp sau -

auto start = high_resolution_clock::now(); // Start time
// Code snippet
auto stop = high_resolution_clock::now(); // Stop time
auto duration = duration_cast<microseconds>(stop - start); // Duration

Lớp high_resolution_clock được định nghĩa trong tệp tiêu đề "chrono". Hàm now () đang trả về một giá trị tương ứng với thời điểm của cuộc gọi.

Tệp tiêu đề được sử dụng để ghi lại thời gian được thực hiện bởi mã cụ thể đó.

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

Sau đây là một ví dụ để tính toán thời gian thực thi của một đoạn mã.

Ví dụ

#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 duration = duration_cast<microseconds>(stop - start);
   cout << "\nTime taken by function : "<< duration.count() << " microseconds";
   return 0;
}

Đầu ra

The sum of numbers : 36
Time taken by function : 42 microseconds

Trong chương trình trên, một hàm sum () được định nghĩa để tính tổng các số.

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

Trong hàm main (), chúng tôi đã ghi lại thời gian được thực hiện bởi hàm sum () bằng cách sử dụng một số hàm được xác định trước và lớp “chrono”.

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