溫馨提示×

c++中queryperformancecounter怎么用

c++
小億
351
2024-01-05 13:21:36
欄目: 編程語言

在C++中使用QueryPerformanceCounter函數來測量時間和性能,需要進行以下步驟:

  1. 包含Windows.h頭文件,該頭文件包含QueryPerformanceCounter函數的聲明。
#include <Windows.h>
  1. 聲明一個LARGE_INTEGER類型的變量來存儲計數器的值。
LARGE_INTEGER start, end, frequency;
  1. 調用QueryPerformanceFrequency函數來獲取計數器的頻率,該頻率表示每秒計數器增加的次數。
QueryPerformanceFrequency(&frequency);
  1. 調用QueryPerformanceCounter函數來獲取計數器的當前值。
QueryPerformanceCounter(&start);
  1. 執行需要計時的代碼。

  2. 調用QueryPerformanceCounter函數來獲取計數器的當前值。

QueryPerformanceCounter(&end);
  1. 計算時間間隔,并轉換為秒數。
double elapsed = (end.QuadPart - start.QuadPart) / static_cast<double>(frequency.QuadPart);

完整示例代碼如下:

#include <iostream>
#include <Windows.h>

int main() {
    LARGE_INTEGER start, end, frequency;
    QueryPerformanceFrequency(&frequency);
    QueryPerformanceCounter(&start);

    // 執行需要計時的代碼
    for (int i = 0; i < 1000000; ++i) {
        // Do something
    }

    QueryPerformanceCounter(&end);
    double elapsed = (end.QuadPart - start.QuadPart) / static_cast<double>(frequency.QuadPart);

    std::cout << "Elapsed time: " << elapsed << " seconds" << std::endl;

    return 0;
}

注意:

  • QueryPerformanceCounter函數返回的計數器值是一個64位整數,可以使用LARGE_INTEGER類型來存儲。
  • 如果計時結果非常小,可以乘以一個合適的倍數來轉換為更友好的單位,如毫秒或微秒。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女