[C++] 统计程序耗时

一、简介

本文介绍了两种在C++代码中统计耗时的方法,第一种使用<time.h>头文件中的clock()函数记录时间戳,统计程序耗时。第二种使用<chrono>头文件中的std::chrono::high_resolution_clock()::now()函数,后者可以方便地统计不同时间单位下的程序耗时,例如秒(s)、毫秒(ms)、微秒(μs)或者纳秒(ns)。

二、代码示例

1. 使用<time.h>头文件中的clock()函数统计耗时

cpp 复制代码
#include <iostream>
#include <time.h>
#include <math.h>
int main(int, char **)
{
    clock_t start;
    clock_t finish;
    start = clock(); // 开始计时
    /* do some thing */
    for (int i = 0; i < 10000; i++)
    {
        float c = exp(2.0);
    }
    finish = clock(); // 结束计时
    // 打印程序耗时,单位:秒s
    std::cout << (double)(finish - start) / CLOCKS_PER_SEC << std::endl;
}

2. 使用 <chrono>头文件中的std::chrono::high_resolution_clock::now()函数统计耗时

cpp 复制代码
#include <iostream>
#include <math.h>
#include <chrono>

int main(int, char **)
{
    std::chrono::high_resolution_clock::time_point start;
    std::chrono::high_resolution_clock::time_point finish;

    start = std::chrono::high_resolution_clock::now(); // 开始计时

    // do some thing
    for (int i = 0; i < 10000; i++)
    {
        float c = exp(2.0);
    }

    finish = std::chrono::high_resolution_clock::now(); // 结束计时

    // 打印程序耗时
    std::cout << "耗时为:" << std::chrono::duration_cast<std::chrono::seconds>(finish - start).count() << "s.\n";
    std::cout << "耗时为:" << std::chrono::duration_cast<std::chrono::milliseconds>(finish - start).count() << "ms.\n";
    std::cout << "耗时为:" << std::chrono::duration_cast<std::chrono::microseconds>(finish - start).count() << "us.\n";
    std::cout << "耗时为:" << std::chrono::duration_cast<std::chrono::nanoseconds>(finish - start).count() << "ns.\n";
    return 0;
}

三、参考

[1].C++函数耗时计算

相关推荐
追寻向上几秒前
《JMeter自动化测试实战指南:从环境搭建到Python集成(进阶篇)》
开发语言·python·jmeter
EDPJ2 分钟前
(2025|ICLR|厦大&华为,LoSA,基于表示互信息的动态层级稀疏率,基于重构误差的秩分配)LLM 的动态低秩稀疏自适应
深度学习·算法·语言模型
KangkangLoveNLP5 分钟前
从Swish到SwiGLU:激活函数的进化与革命,qwen2.5应用的激活函数
人工智能·深度学习·神经网络·算法·机器学习·自然语言处理·cnn
奔跑的废柴6 分钟前
LeetCode 513. 找树左下角的值 java题解
java·算法·leetcode
Awesome Baron9 分钟前
LeetCode hot 100 每日一题(7)--3. 无重复字符的最长子串
算法·leetcode·职场和发展
SsummerC14 分钟前
【leetcode100】组合总和
数据结构·python·算法·leetcode
egoist20231 小时前
【C++指南】一文总结C++类和对象【下】
c++·编辑器·类和对象·初始化列表·友元·匿名对象·c++ 11
反方向的钟儿1 小时前
【数学建模】001
笔记·算法·数学建模
恋恋风辰3 小时前
QT系列教程(16) 定时器事件
开发语言·qt·命令模式
SNAKEpc121386 小时前
Qt开源控件库(qt-material-widgets)的编译及使用
c++·qt·开源