C++计时器

此文来自于👉由UP主神经元猫 神经元猫的个人空间_哔哩哔哩_bilibili 翻译 【63】【Cherno C++】【中字】C++的计时_哔哩哔哩_bilibili ,并由我整理。

C++计时器

std::chrono::high_resolution_clock高分辨率时钟在不同标准库有所区别,尽量不要使用。

  • 对时长度量使用 steady_clock
  • 对壁钟时间使用 system_clock 。

基础计时器

#include <iostream>
#include <chrono>
#include <thread>

int main(void)
{
    
    auto start = std::chrono::steady_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    auto end = std::chrono::steady_clock::now();
    
    std::chrono::duration<float> time = end - start;

    std::cout << time.count() << "s \n"; 
    std::cin.get();
}

计算打印hello用时

struct Timer
{
    std::chrono::time_point<std::chrono::steady_clock> start, end;
    std::chrono::duration<float> duration;

    Timer()
    {
        start = std::chrono::steady_clock::now();
    }
    ~Timer()
    {
        end = std::chrono::steady_clock::now();
        duration = end - start;

        float ms = duration.count() * 1000.0f;
        std::cout << "Timer took " << ms << "ms \n";
    }
};

void Function()
{
    Timer timer; // 计算此函数生命周期耗时
    for (int i = 0; i < 100; i++)
        std::cout << "Hello\n";
}
Licensed under CC BY-NC-SA 4.0