Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách tính thời gian thực thi đoạn mã (Execution Time) trong C++


Chúng ta có thể tính thời gian thực thi đoạn mã bằng cú pháp sau:

auto start = high_resolution_clock::now(); // Thời gian bắt đầu
// Đoạn mã
auto stop = high_resolution_clock::now(); // Thời gian kết thúc
auto duration = duration_cast<microseconds>(stop - start); // Thời lượng

Lớp high_resolution_clock định nghĩa trong header chrono. Hàm now() trả về giá trị tương ứng với thời điểm gọi.

Header file dùng để ghi nhận thời gian:

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

Ví dụ tính thời gian thực thi:

Ví dụ

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

int sum(int x, int y) {
    int s = x + y;
    cout << "Tổng các số: " << 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 << "\nThời gian hàm thực thi: " << duration.count() << " microseconds";
    return 0;
}

Kết quả

Tổng các số: 36
Thời gian hàm thực thi: 42 microseconds

Trong chương trình, hàm sum() tính tổng hai số.

int sum(int x, int y) {
    int s = x + y;
    cout << "Tổng các số: " << s;
}

Trong main(), ghi nhận thời gian hàm sum() bằng các hàm/lớp định nghĩa sẵn trong chrono.

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