首页 > 编程语言 >C++中 统计程序执行耗时

C++中 统计程序执行耗时

时间:2024-01-11 15:57:16浏览次数:33  
标签:std chrono clock steady C++ 程序执行 耗时 time

C++ 程序有时需要统计一段代码的执行消耗时间,可以通过类 chrono 库来进行计算。该库中常常使用两个类来进行计算时间:

  • std::chrono::steady_clock:表示稳定的时钟
  • std::chrono::system_clock:表示当前系统时钟

代码如下

#include <chrono>

using namespace std::chrono;

double GetElapsedTime()
{
    time_point<steady_clock> start = steady_clock::now();

    DoSomething(); // 要统计耗时的代码段

    time_point<steady_clock> end = steady_clock::now();

    duration<double> elapsedTime = end - start;

    return elapsedTime.count();
}

参考资料:

  1. Date and time utilities
  2. chrono 库

标签:std,chrono,clock,steady,C++,程序执行,耗时,time
From: https://www.cnblogs.com/Jeffxu/p/17958761

相关文章

  • 【C++/Qt】QLCDNumber-电子时钟实战
    头文件:#ifndefDIGITALCLOCK_H#defineDIGITALCLOCK_H#include<QLCDNumber>classdigitalClock:publicQLCDNumber{Q_OBJECTpublic:digitalClock(QWidget*parent=0);protected:voidmousePressEvent(QMouseEvent*event);//鼠标点击事件void......
  • 【C/C++】知识点笔记
    1-联合体内嵌结构体初始化赋值union{struct{inti;floatf;char*p;};into;}obj3={1,2.2,"sk",4,9};printf("structinlayunion:%d,%f,%s,%d\n",obj3.i,obj3.f,obj3.p,obj3.o);输出:structin......
  • C++ 拷贝构造函数
    拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:通过使用另一个同类型的对象来初始化新创建的对象。复制对象把它作为参数传递给函数。复制对象,并从函数返回这个对象。如果在类中没有定义拷......
  • agx orin 使用 sdm 刷机后,vscode 使用 C++ 版本的 opencv, 出现红色的波浪线,但是程序
    原因:vscode没有链接好opencv的头文件先找到opencv头文件的位置:sudofind/-iname"opencv"/usr/include/opencv4/usr/include/opencv4/opencv2解决:ctril+sheft+p:打开:c_cpp_properties.json,写入:"includePath":["${workspaceFo......
  • C++设计模式05 —— 装饰模式
    装饰模式过度的使用继承使得派生的子类过多,代码重复度很高,复用性变差。实现加密文件流、加密网络流、加密内存流、缓冲文件流、缓冲网络流、缓冲内存流。如果我们创建一个流基类,然后创建文件流继承流基类,最后创建加密文件流继承文件流、创建缓冲文件流继承文件流。如果这......
  • C++ 类构造函数 & 析构函数
    题目:假定AB为一个类,则执行”ABa(2),b[3],*p[4];“语句时调用该类构造函数的次数为4次。 解析:ABa(2)为调用一次构造函数;ABb[3] 代表b是AB类的对象数组,包含3个对象,因此为调用3次构造函数;AB*p[4]代表p是AB类的对象指针数组,包含4个类对象指针,不调用构造函数。 补......
  • C++设计模式04 —— 观察者模式
    观察者模式一种一对多的依赖关系,当被依赖的对象发生改变时,所有依赖它的对象都能够做出相应的改变。为一个文件分割器加入进度展示。我们需要支持多个类型的进度条,我们可以随意操控进度条的样式细节。首先,我们做一个进度条的抽象基类classIProgress{public:virtu......
  • Helix QAC 2023.4 新版支持C++20语言,带来更多性能提升!
    HelixQAC2023.4新增功能HelixQAC2023.4全面支持MISRAC++:2023®规则,涵盖100%的指南。此版本还加强了对C++20语言的支持,改进了数据流分析性能,并在整个产品中增加了多项用户体验改进。增强的C++20支持此版本新增了对以下语言特性的支持:-模板参数列表和函数声明的requires-clau......
  • Helix QAC 2023.4 新版支持C++20语言,带来更多性能提升!
    HelixQAC2023.4新增功能HelixQAC2023.4全面支持MISRAC++:2023®规则,涵盖100%的指南。此版本还加强了对C++20语言的支持,改进了数据流分析性能,并在整个产品中增加了多项用户体验改进。增强的C++20支持此版本新增了对以下语言特性的支持:-模板参数列表和函数声明的require......
  • C++和Qt面试题(精简版)
    C++面试题什么是c++?请简述它的优点和缺点c++是一种面向对象的编程语言,实现了继承、抽象、多态和封装等概念。**优点:**能够开发复杂的应用程序,提供了极大地灵活性,让开发者能够控制资源的使用和可用性,从而最大限度的提高性能。**缺点:**由于C++太过自由,导致指针对内存操作时可能造成内......