- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
std::chrono::system_clock::now().time_since_epoch()
从何而来?也就是说,它是与晶体振荡器(物理组件)的直接接口(interface)吗?
如果是晶振,是每核一个还是所有核一个?
如果所有内核都有一个振荡器,如果多个线程同时访问它(低延迟环境),它是否会阻塞线程?
如果每个核心都有一个晶体振荡器,它们如何同步?
最佳答案
C++ 标准不关心如何system_clock::now()
得到实现。它只是指定
Returns a
time_point
object representing the current point in time.
典型的 C++ 标准库实现依赖于底层操作系统系统调用来获取实际的系统时钟值来构造 time_point
对象。
在硬件实现方面,您需要考虑硬件架构。但通常系统时钟的维护成本始终存在,无论有多少进程/线程正在读取它。并且系统时钟获取实现为一个轻量级例程,不会导致线程阻塞,不会成为多线程程序中的性能瓶颈。
此外,std::chrono::system_clock::now().time_since_epoch()
是一个简单的观察者方法,它只返回嵌入的 duration
time_point
中的对象std::chrono::system_clock::now()
返回的对象,这仅涉及 C++ 结构复制。
关于c++ - 从 `std::chrono::system_clock::now().time_since_epoch()` 开始的时间从哪里来,如果从多个线程访问它会阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740302/
我有一个变量存储为 long 来自 std::chrono::system_clock::time_point.time_since_epoch().count() 的值。我现在想从 long 变量中
我正在编写代码来为 for 循环计时,我使用了教授给我的代码,它使用了 system_clock。我的问题是,在我计时的一个 for 循环中,它返回负时间。有时它是不同的数字,但总是负数。 代码如下:
这是我找到的一些代码: std::cout #include int main() { std::cout << std::chrono::system_clock::period::nu
如何从 std::chrono::system_clock::time_point 设置平台(windows、linux、android)的系统时间。 最佳答案 您不能使用 std::chrono 工
我阅读了有关 boost::chrono 的全部信息,但仍然没有明白如何以简单的方式将 boost::chrono::system_clock 转换为字符串。例如,我想获取当前时间并将其转换为下一种格
如何将chrono::system_clock::time_point值加数月? 谢谢! 最佳答案 概述 这是一个非常有趣的问题,有几个答案。 “正确”的答案是您必须针对特定应用程序决定的。 使用月份
将来调用 system_clock::now() 可以给出过去的时间吗?例如,因为夏令时? 调用 system_clock::now().time_since_epoch() 怎么样?还是保证总是返回
我已经对类似这样的问题进行了一些很好的回答 one . 然而,在将字符串转换为 time_point 并返回字符串后,我的代码似乎在一小时后给出了输出。 给出错误答案的代码: #include #i
我试图创建一个程序来告诉我明天是星期几(从 1 月 1 日开始),但我写下的代码似乎不起作用。 这是我的代码: #include #include #include #include int
我知道 std::chrono::system_clock::time_point 的默认值是时钟的纪元,但我在 C++11 标准中找不到任何规定system_clock 的纪元与 POSIX 纪元
我有一个小问题:我如何编写以下代码没有 auto。 auto a = std::chrono::system_clock::now() /* do something */ auto b = std:
我正在尝试通过保留微秒精度将以下列格式表示的字符串时间戳:“28.08.2017 03:59:55.0007”转换为 std::chrono::system_clock::time_point。有没有
我想写一个可移植性很强的代码,我需要在初始化时调用std::chrono::system_clock::now()。这个函数会抛出异常吗? 在c++11标准中,没有提到这个问题。 (至少,我没有找到)
我目前的模式(对于 unix)是调用 gettimeofday,将 tv_sec 字段转换为 time_t,通过 传递localtime,并将结果与 tv_usec 组合。这给了我一个完整的日期(
我正在编写运行在 BusyBox 嵌入式 Linux 上的 C++ 代码。我的代码及其库多次调用 std::chrono::system_clock::now() 以获取当前时间。 从现在开始,我的盒
std::chrono::system_clock::time_since_epoch().count() 以微秒为单位给出结果。 我想要以纳秒为单位的当前时间。但我不能使用 high_resolut
在为 FORTRAN 程序计时时,我通常只使用命令 call cpu_time(t) . 然后我偶然发现了call system_clock([count,count_rate,count_max])
我一直在为我们的代码库中的一个类编写单元测试,该类基本上将日期、时间值从 std::string 转换为 std::chrono::time_point 并且反之亦然,对于不同类型的时间戳(yyyy-
大家好,我创建了一个 C++ 应用程序,它使用 std::chrono 来计算时差。 在某些时候,我将文件上传到服务器,作为响应,我从 receive.php 获得了一个纪元时间戳,它通知了文件完全上
我在下面编写的函数是尝试允许 32 位和 64 位时间并努力变得更加灵活。我一直收到关于数据转换丢失的警告,这不太合理。 time_t now() { using namesp
我是一名优秀的程序员,十分优秀!