【知识---c++中chrono头文件中的含有的有关时间的函数】

2024-01-18 20:20

本文主要是介绍【知识---c++中chrono头文件中的含有的有关时间的函数】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • auto start = std::chrono::system_clock::now();
  • auto end = std::chrono::system_clock::now();
  • std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
  • &引申
  • 总结


前言

auto start = std::chrono::system_clock::now();doInference(*context, data, prob, BATCH_SIZE); //prob: size (101, 56, 4)auto end = std::chrono::system_clock::now();std::cout << "inference time is "<< std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()<< " ms" << std::endl;

如何理解???

std::chrono::system_clock::now()

std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()


auto start = std::chrono::system_clock::now();

这行代码使用 C++ 头文件中的功能来获取当前时刻的时间点,并将其存储在变量 start 中。

以下是解释:

std::chrono::system_clock::now(): 这是 头文件提供的函数,用于获取当前时刻的时间点。

在 C++ 库中,时间点通常表示为自该固定时间点以来的持续时间。

system_clock 表示系统时钟,now() 返回一个表示当前时刻的时间点对象。

auto start = …: auto 关键字用于自动推断变量的类型。

在这里,它被用来推断 start 的类型,将其初始化为当前时刻的时间点。

这样,start 就保存了程序执行到这一行时的时间点。通常,这样的时间点记录用于测量代码的执行时间或某个操作的时间开销。在与 std::chrono 结合使用时,你可以在程序的不同部分记录时间点,然后计算它们之间的时间差,以测量特定操作的执行时间。

auto end = std::chrono::system_clock::now();

同理:end就保存了程序执行到这一行时的时间点。

std::chrono::duration_caststd::chrono::milliseconds(end - start).count()

这行代码使用 duration_cast 函数将时间差转换为毫秒,并获取其计数。以下是详细解释:

std::chrono::duration_caststd::chrono::milliseconds: 这是
头文件中的函数,用于将一个时间段(duration)从一个时间单位转换为另一个时间单位。

在这里,它将 end - start 的时间差从秒转换为毫秒。

(end - start): 这是两个时间点相减的操作,得到的结果是一个 duration对象,表示两个时间点之间的时间差。这个时间差的单位是秒。

.count(): 这是 duration 类的成员函数,用于获取时间差的计数值。

在这里,它用于获取以毫秒为单位的时间差。

整体上,这行代码的作用是计算两个时间点之间的时间差,并将结果以毫秒为单位的计数值表示。

这样,你就可以通过这个值来获取以毫秒为单位的时间差,通常用于测量较小时间间隔的执行时间。

&引申

#include 是 C++ 标准库中的头文件,它提供了时间处理相关的功能,引入了 头文件后,你可以使用一系列的时间点和持续时间的类以及与时间有关的功能。

以下是 头文件中一些重要的类和函数:

std::chrono::system_clock: 表示系统时钟,提供了当前时间点的获取功能。

std::chrono::steady_clock: 表示稳定时钟,用于测量时间间隔的稳定时钟。

std::chrono::high_resolution_clock: 表示高精度时钟,提供更高分辨率的时间点。

std::chrono::time_point: 表示时间点的类模板,用于表示一个时钟的具体时间。

std::chrono::duration: 表示时间段的类模板,用于表示两个时间点之间的时间差。

std::chrono::duration_cast: 用于将一个时间段从一个时间单位转换为另一个时间单位。

std::chrono::time_point_cast: 用于将一个时间点转换为另一个时钟的时间点。

std::chrono::milliseconds、std::chrono::seconds 等:
表示不同时间单位的类型,用于进行时间单位的转换。

std::chrono::steady_clock::now()、std::chrono::system_clock::now() 等:

用于获取当前时刻的时间点。其他一些与时间相关的辅助函数和工具。

这些类和函数提供了强大的时间处理功能,使得在 C++ 程序中能够方便地处理和测量时间。使用 头文件,你可以进行时间点的获取、时间差的计算、时间单位的转换等操作,适用于各种时间相关的编程任务。


总结

上述的操作可以获取一个时间差!!!

不足之处,请大家斧正!!!

这篇关于【知识---c++中chrono头文件中的含有的有关时间的函数】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/620154

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域