问题标签 [gettimeofday]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
245 浏览

c - 为什么 timerfd 定期 Linux 定时器的到期时间比预期的要早一点?

我正在使用 Linux 定期计时器,特别是 ,timerfd我将其设置为定期到期,例如每 200 毫秒。

然而,我注意到,相对于我设置的超时,计时器似乎有时会提前一点到期。

特别是,我使用以下 C 代码来执行一个简单的测试:

用 gcc 编译后:

我得到以下输出:

我希望用 估计的实际时间差gettimeofday()永远不会小于 200 毫秒(也是由于用 清除事件所需的时间read()),但也有一些值略小于 200 毫秒,例如199.942000 ms.

你知道我为什么要观察这种行为吗?

可能是因为我正在使用gettimeofday()并且有时会tv_prev稍晚一点(由于调用read()gettimeofday()本身时有一些不同的延迟)tv_curr,并且在下一次迭代中,不是,导致估计时间小于 200 毫秒,而计时器实际上每 200 毫秒到期一次是精确的?

非常感谢您提前。

0 投票
0 回答
128 浏览

c - 为什么 strace 没有在 strace 中列出 gettimeofday()

我看到很多链接显示 strace 在其输出中将 gettimeofday 列为系统调用,但就我而言,我觉得它正在分解为其他调用。我错过了什么吗?

我在 linux 4.4 内核和 ubuntu 16.04 上的 VM 中运行

0 投票
3 回答
1070 浏览

c++ - gettimeofday() - 为什么同时使用秒和微秒?

我需要使用函数 gettimeofday 进行家庭作业,在阅读了手册页并查看了一些在线示例之后,我不明白为什么人们有时会同时使用结构的 tv_sec 成员和结构的 tv_usec 成员。手册页指出:

因此,假设我需要以纳秒为单位返回时间,并且我创建了两个 timeval 结构,start 和 end,并且我使用 gettimeofday() 记录了它们的时间。自然,我的第一个想法是以微秒为单位计算差异,即 start.tv_usec-end.tv_usec 然后将其乘以 1000 以将其转换为纳秒。

但是,许多在线示例和教程都会计算秒和微秒的差异,然后将它们转换然后相加。(例如

我通读了整个手册页,但找不到原因,如果有的话,希望能得到解释。

0 投票
1 回答
76 浏览

c - 分配给变量时Gettimeofday不起作用

我有一个简单的时间戳问题。我正在尝试使用时间戳gettimeofday,当我将值打印到终端时,它一切正常,但是当我将它分配给一个变量时,它没有。我不知道我做错了什么。代码和输出如下所示:

输出:

请注意,我习惯于使用 Python 而不是 C 编程,我知道这个问题可能是微不足道的。

0 投票
3 回答
189 浏览

c - 使用 gettimeofday 查找线程的时间片


我试图找到程序的时间片,首先我为每个线程分配了一个 ID,以帮助在它们的f功能中识别它们。在f函数中,我使用timevalstruct 检查开始和结束时间,将它们相减并乘以 1000 以转换为 ms。
我期望的结果(例如在 2 个线程上)是一个无限循环,它将为每个线程打印该时间。我得到的结果是一个无限循环,只经过第二个线程,时间总是 0 或 0.001 毫秒(为什么?)。
我会很感激关于我应该如何思考解决方案的提示\我做错了什么?
编码:

输出(无限循环):

0 投票
0 回答
46 浏览

gettimeofday - 当系统的 RTC 尚未设置为当前时间时,gettimeofday() 将返回哪个值?

这是一个全新的系统,没有 NTP 或任何其他外部时间信号源,其实时时钟甚至还没有手动设置。当我使用查询它时

…分别返回值。timeval那我会得到结构吗?一个随机的,一个代表“时代”(1970-01-01),还是某种错误?

0 投票
1 回答
35 浏览

android - 为什么 NDK GetCurrentTime 不正确?

我使用以下代码

此代码在 OSX 平台上运行。clang编译后输出为1618460301601,这个结果是正确的我在NDK下,r17c r21d

但是我用NDK在模拟器或者手机上编译运行,会得到这个值 35538​​27972 如何获取当前时间

0 投票
1 回答
70 浏览

c - 为什么第二个差异与其他差异如此不同,在循环中使用 gettimeofday?

这个功能对我来说很新,所以我只是写了一个小程序来熟悉它。这是我的程序(只是在几次 gettimeofday 调用之间打印圈数)。

结果是:

所以我想知道为什么第二个差异与其他差异如此不同.. 仅供参考,我做了几次测试,每次我得到这个模式。

0 投票
2 回答
204 浏览

c - gettimeofday 函数的精度是多少?

我正在阅读OSTEP的 single.dvi 章节。在作业部分,它说:

您必须考虑的一件事是计时器的精度和准确性。您可以使用的典型计时器是gettimeofday(); 阅读手册页以获取详细信息。你会看到它gettimeofday() 以微秒为单位返回自 1970 年以来的时间;但是,这并不意味着计时器精确到微秒。测量背靠背呼叫以gettimeofday()了解计时器的实际精确度;这将告诉您必须运行多少次空系统调用测试才能获得良好的测量结果。如果 gettimeofday()对您来说不够精确,您可能会考虑使用rdtscx86 机器上可用的指令

我写了一些代码来测试调用gettimeofday()函数的成本,如下所示:

但是,输出将始终为 0 微秒。该函数的精度似乎gettimeofday()恰好是一微秒。我的测试代码有什么问题?还是我误解了作者的意思?谢谢您的帮助!

0 投票
1 回答
65 浏览

c++11 - 如何使用 C++11 chrono 获得完全相同的 timeval 结果

在我的 C++ 项目中,有一个很老的函数,它使用 Linux 的系统函数来做一些关于时间的计算。

这是一段代码:

* 10000/ 100没有错,因为这段代码即将生成一个seqId。

现在,我正在尝试使用std::chronoC++11 来替换它。这是我的代码:

但是,结果总是有点错误。例如,旧版本可能会给我360681491,但我的版本会给我360680149. 您会发现它们并不完全相同。

我不知道为什么。或者不可能这样做std::chrono