C++11 chrono计时

C++11计时器:chrono库介绍 阅读详情

我的C++ 文章列表

C++中Duration、Time_point和Clocks_万里归来少年心的博客-优快云博客_time_point

    C++11中的chrono库,实现时间相关的功能。

1.time_point

    time_point表示一个时间点。

2. duration

两个time_point对象之间的距离是duration类型。

duration对象可以通过duration_cast转换成以毫秒为单位、秒为单位、微秒为单位等。

typedef duration <Rep, ratio<3600,1>> hours; 
typedef duration <Rep, ratio<60,1>> minutes;
typedef duration <Rep, ratio<1,1>> seconds;
typedef duration <Rep, ratio<1,1000>> milliseconds;          //毫秒
typedef duration <Rep, ratio<1,1000000>> microseconds;       //微秒
typedef duration <Rep, ratio<1,1000000000>> nanoseconds;     //纳秒

当前时间加上一个间隔

    // 获取当前时间点
    auto now = std::chrono::system_clock::now();
    // 加上 5 秒钟
    auto future_time = now + std::chrono::seconds(5);

3.clocks


clocks表示当前的系统时钟

system_clock::now() 获取系统的时钟,返回值是time_point类型;

4 time_since_epoch

走过的时间

system_clock::time_point begin_write_current_file;
assert(begin_write_current_file.time_since_epoch().count() != 0);//是否已经被赋值

完整示例

测试一段代码的执行时间。

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

int main()
{
    system_clock::time_point t1 = system_clock::now();
    cout << "Hello World\n";
    system_clock::time_point t2 = system_clock::now();
    cout << duration_cast<milliseconds>(t2 - t1).count() << " milliseconds." << endl;
    return 0;
}

用于线程的示例

#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
int main()
{
    this_thread::sleep_for(chrono::seconds(3));        //休眠3秒
    this_thread::sleep_for(chrono::milliseconds(100)); //休眠100毫秒
    cout << "Hello" << endl;
    getchar();
    return 0;
}

C++ 的时间库之五:time_point C++ 的时间点有两个关键标识,一个是时间点计时用的时钟类型,另一个是记录时间点从时钟的纪元起点开始的时间间隔类型。时钟类型决定了时间点的计时方式和时间纪元起点,时间间隔类型决定这个时间点的计时单元是毫秒还是天。 阅读详情

相关推荐

C++11 chrono纳秒级别计时

我是毫无感情的转载链接 我是毫无感情的转载链接 太长不看版: 跟我一起来10遍: chrono::steady_clock::now().time_since_epoch().count()\mathrm{\color{red} chrono::steady\_clock::now().time\_since\_epoch().count()}chrono::steady_clock::now()...

Freopen的博客 1102

C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)

C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1万+

从C++11到C++20:现代C++中更优雅的高精度计时方案(chrono库完全指南)

本文全面解析了从C++11到C++20中chrono库的高精度计时方案,详细介绍了时钟类型、时间段运算及并行代码测量等核心功能。通过类型安全的设计和丰富的API,chrono库为性能敏感型开发提供了优雅的解决方案,特别适合测量函数运行时间和优化串行/并行代码性能。

310

C++ chrono 计时器

创建时间点:std::chrono::system_clock::now()换算:1s = 1000ms,1ms =1000ns。时间精度:100ns(纳秒)

weixin_66651900的博客 936

[C++] 深入探索C++11 chrono库:实现微秒级与纳秒级的高精度计时

本文深入探讨了C++11 chrono库如何实现微秒级与纳秒级的高精度计时。通过对比传统方法(如gettimeofday),详细解析了chrono库的核心组件(时钟、时间点、时间段)及其在性能测试、算法优化和实现高精度延时等待中的实战应用,强调了其类型安全、可移植性及易用性优势。

weixin_29017445的博客 236

UE5 AI寻路全攻略:从Nav Mesh基础到动态障碍与多模式导航

在游戏开发中,AI寻路是赋予非玩家角色自主移动能力的关键技术。其核心原理是通过预计算或实时生成一个表示可行走区域的导航网格,AI路径查找算法(如A*)在此网格上规划最优路径。这项技术的价值在于,它能极大提升游戏世界的真实感和交互性,使NPC能够智能地绕开障碍、穿越复杂地形,广泛应用于开放世界、RPG、策略游戏等多种场景。本文聚焦于虚幻引擎5的寻路系统,深入探讨其寻路网格体配置。针对动态环境挑战,文章详细介绍了如何利用寻路修饰体积和动态障碍物组件实现导航网格的实时更新;同时,针对游泳、飞行等特殊移动需求,解析

weixin_33226816的博客 362

时间库<chrono>

chrono

艾伦 614

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

C++11 新的计时方法——std::chrono 大法好

C++11里面提供了很多炫酷的新标准。我以下给出采用 C++11 标准的”最佳计时方法“的代码:

caitao_zhan 11万+

如何用Python实现SPEI指数计算?从数据准备到结果可视化完整指南

本文提供了一份完整的Python实现SPEI指数计算指南,涵盖从数据准备、潜在蒸散量计算到结果可视化的全流程。详细介绍了使用Thornthwaite方法计算PET、拟合三参数log-logistic分布以及标准化转换的核心算法,并提供了模块化代码和可视化方案,帮助用户构建可复用的干旱分析工具。

cola5的博客 267

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7364

C++11中利用chrono库对某个函数计时

在油管上看到Up主The Cherno的一集视频,巧妙利用std::chrono 库的一些方法,将其包装在对象中,并充分地利用作用域生命周期来发挥其优势,达到对某个函数进行计时的目的。由于chrono库是跨平台的,所以很方便地移植到Widows、Mac、Linux等多种平台。

ccf19881030的专栏 660

八大排序算法——(万字图文详解)

本篇博客将对“直接插入排序”、“希尔排序”、“直接选择排序”、“堆排序”、“冒泡排序”、“快速排序”、“归并排序”、“计数排序”进行详细的解析(算法逻辑、具体实现过程、时间复杂度、稳定性),并附以图片帮助大家更好地理解算法逻辑以及实现每个排序的参考代码。

Forward♞的博客 8078

c++11计时chrono库使用

这是一个c++11提供的标准库,为我们屏蔽了不同的操作系统的底层计时方法,学就完事basically 用于计时我们自己的程序用时(, 尽管我们之后会学到更好的工具)

weixin_51796629的博客 629

PHY6252开发实战:从零构建BLE串口透传应用

本文详细介绍了PHY6252开发板在BLE串口透传应用中的实战经验,包括开发环境搭建、BLE串口透传例程解析、AT指令集实现与扩展、数据透传机制优化以及常见问题排查指南。通过智能家居遥控器项目案例,展示了PHY6252在低功耗物联网设备开发中的实际应用。

weixin_29183637的博客 313

Git系列(一)、Git基础教程【建议收藏】

Git一、Git简介1.1、什么是Git? 一、Git简介 1.1、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。 .........

一宿君 4万+

C++11 计时方法——std::chrono

前言: 这个计时的话,最大的用途我觉得就是可以计算一下程序的用时。加上头文件 # include < chrono > 这里简易记录一下: auto t1=std::chrono::steady_clock::now(); auto t2=std::chrono::steady_clock::now(); //秒 double dr_s=std::chrono::duration<double>(t2-t1).count();

weixin_43743711的博客 3752

从图片到3D模型:用Tripo+Unity打造AI建模流水线(避坑指南)

本文详细介绍了如何利用Tripo和Unity构建AI驱动的3D建模流水线,从图片到3D模型的高效转换。通过文生模型和图生模型的双模系统,开发者可以大幅提升建模效率,适用于游戏开发和数字内容创作。文章还提供了环境配置、图片预处理、批量生成等实用技巧,帮助开发者避开常见陷阱。

weixin_27024175的博客 615

2018.7.16学习内容:C++11 新的计时方法——chrono 大法好

C++11 新的计时方法——std::chrono 大法好2015年12月16日 19:33:06阅读数:19185计时有很多用途,比如:测试某一段代码的运行时间,时间越短,则性能相对越高。计时有很多方法,我将首先给出我以前常用的一种计时方法,然后给出我认为的最佳方法(采用了C++11的标准技术)。首先给出我以前常用的一种“传统”的计时方法:#include &lt;ctime&gt; using...

qq_42022726的博客 231

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++11 chrono high_resolution_clock实现计时器

程序参考《深入应用C++11 代码优化与工程级应用》,使用high_resolution_clock实现计时器,在测试程序性能时会用到,测试程序的耗时

gdizcm的专栏 1535

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++11计时器chrono

choron模板库包含三部分:clock、time_point、duration。 时钟clock std::chrono::system_clock: 依据系统当前时间 std::chrono::steady_clock: 不能设置的时钟,以统一速率运行 std::chrono::high_resolution_clock: 高分辨率时钟 三个时钟类都提供一个静态成员函数now()用于获取当前时间,函数返回值是time_point类。 system_clock还提供静态成员函数to_time_

weixin_57990811的博客 5491

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C++11 chrono库实战:5分钟搞定高精度计时器(附性能对比)

本文深入解析C++11 chrono库,教你快速构建高精度计时器。通过对比system_clock、steady_clock和high_resolution_clock的差异,明确性能测量场景下的最佳时钟选择,并提供可复用的RAII风格计时器类,助力C++开发者进行精准性能分析与优化。

gold的博客 711

从C++11到C++20:现代C++中更优雅的高精度计时方案(chrono库实战指南)

本文深入探讨了从C++11到C++20中现代C++的高精度计时方案,重点介绍了chrono库的实战应用。通过对比传统计时方法,展示了chrono库在类型安全、跨平台兼容性和高精度测量方面的优势,并提供了生产级计时工具类的实现示例。文章还涵盖了C++20新增的日历时间格式化和时区处理功能,帮助开发者更优雅地处理时间测量问题。

aizhi0169的博客 477

c++11计时:chrono

#include &amp;amp;lt;chrono&amp;amp;gt; std::chrono::high_resolution_clock::time_point t1 = std::chrono::high_resolution_clock::now(); 某段代码 std::chrono::high_resolution_clock::time_point t2 = std::chrono::high_reso...

sinat_21190681的博客 412

C++11 chrono库实战:5分钟搞定高精度计时器(附性能对比测试)

本文详细介绍了C++11 chrono库在高精度计时器中的应用,包括时钟类型对比、时间段表示及实战计时器实现。通过性能对比测试,展示了steady_clock和high_resolution_clock的稳定性和精度优势,帮助开发者快速掌握高效的时间测量技术。

xgboost6farmer的博客 401

别再只用clock()了!C++11 chrono库实战:从system_clock到high_resolution_clock的保姆级性能计时指南

本文深入解析C++11 chrono库在性能计时中的应用,对比system_clock、steady_clock和high_resolution_clock的特性与适用场景,提供从基础改造到高级测量的实战指南。通过精确计时技术、跨平台一致性处理和性能分析框架,帮助开发者告别传统的clock()函数,实现纳秒级精准测量。

weixin_33736048的博客 373
上一篇: QT样式表 V2.0
下一篇: QT鼠标键盘事件
C++程序员Carea
博客等级 码龄18年 1590粉丝 878原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值