问题标签 [system-clock]

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 投票
2 回答
2813 浏览

javascript - Node.js 中的单调增加时间

浏览器已经回答了这个问题here,但window.performance.now()显然在 Node.js 中不可用。

一些应用需要稳定的时钟,即随时间单调增加的时钟,不受系统时钟漂移的影响。例如,Java 有System.nanoTime(),C++ 有std::chrono::steady_clock. Node.js 中有这样的时钟吗?

0 投票
1 回答
119 浏览

java - Java中获取方法时间的可靠跨平台方式

这个问题与基准无关。

我有一个 java 线程周期,它应该在接近一个时间段 T 时运行:

当然,根据计划优先选择,Thread.sleep(sleepTime)可能略大于sleepTime. 但是,平均而言,这种方法提供了周期 T 的接近平均近似值。

问题

方法:

提供挂钟参考时间。如果机器的时钟向前或向后改变,则此实现无法提供周期 T 的近似值。例如:

Thread.sleep(30000)如果有人在“运行”时提前三分钟手动更改时钟,则会打印类似 204283 的内容。

由于系统时钟总是在变化(时间服务器同步、系统负载、用户设置等),因此使用System.currentTimeMillis()不足以满足我的需求。

失败的解决方案

为了提供更强大的时间参考,我尝试了以下 getTime 方法的实现:

问题getCurrentThreadCpuTime在于,产生的时间量是线程消耗的 CPU 时间,而不是那一刻剩下的时间。不考虑线程休眠或阻塞的剩余时间。例如:

getCurrentThreadCpuTimegetTime 的实现令人惊讶地打印“0”(零) 。

我想要的是

我想我需要的是这样的:

问题是我没有找到一种实现跨平台方式getAmountOfCPUCyclesSinceTheProgramStarted()的java方法。getCPUFrequency()

最后,我的问题是:如何以可靠的跨平台方式获取java中方法的花费时间?

0 投票
1 回答
234 浏览

android - SystemClock.uptimeMillis() 中设置的变量无法重置

求你原谅我是一个新的开发者。

我正在使用SystemClock.uptimeMillisinside ofRunnable使它看起来像秒表。我从谷歌拿了秒表源代码。之后,我每 30 秒进行一次修改,变量(命名为价格)会增加。


奇怪的是,当我重新开始秒表时,价格不会回到初始值。我试过重置价格值,onActivityResult但秒表显示的是随机数。如何让价格变量回到初始值?

这是我的代码:

当按钮单击该方法时触发此代码

0 投票
2 回答
2093 浏览

arm - 使用 CubeMX 为 STM32F103C8 生成系统时钟配置

我正在尝试生成 system_stm32f1xx.c,它将设置我的时钟,如图所示。 系统时钟配置

问题是,当我使用 CubeMX 生成代码时,我没有得到这个配置。相反,我得到了(我猜的)启用内部 RC 时钟的默认配置。

在我发现我的时钟配置有问题之前,我在配置定时器和 USART 时遇到了很多问题。

system_init() 函数的内容。

0 投票
2 回答
1596 浏览

android - 我们的秒表应用程序有多准确?

最近我正在研究一个也可以计算毫秒的秒表。我读到的文章没有必要每 1/10 秒更新一次计时器 TextView,因为那是我们的眼睛可以记录图像的时间。这是每个秒表应用程序的工作方式吗?甚至所有安卓设备上的内置秒表?

如果应用程序可以准确地显示每毫秒,建议一个方法,因为我被卡住了。

0 投票
4 回答
2849 浏览

c++ - 在等待 std::condition_variable 时如何处理系统时钟的变化?

我正在尝试在 C++11 中实现一些跨平台代码。此代码的一部分使用std::condition_variable实现信号量对象。当我需要对信号量进行定时等待时,我使用wait_until或 wait_for。

我遇到的问题是,在基于 POSIX 的系统上,condition_variable 的标准实现似乎依赖于系统时钟,而不是单调时钟(另请参阅:this issue against the POSIX spec

这意味着如果系统时钟更改为过去的某个时间,我的条件变量将阻塞的时间比我预期的要长得多。例如,如果我希望我的 condition_variable 在 1 秒后超时,如果有人在等待期间将时钟调回 10 分钟,则 condition_variable 会阻塞 10 分钟 + 1 秒。我已经确认这是 Ubuntu 14.04 LTS 系统上的行为。

我需要依靠这个超时至少有点准确(即,它可能在一定的误差范围内不准确,但如果系统时钟发生变化,仍然需要执行)。看来我需要做的是编写我自己的 condition_variable 版本,它使用 POSIX 函数并使用单调时钟实现相同的接口。

这听起来像是很多工作——而且有点乱。有没有其他方法可以解决这个问题?

0 投票
0 回答
110 浏览

python - 如何在python中获取由于系统时钟回退而不会倒退的当前unix纪元时间

我正在使用 python 时间模块,我在其中获取当前的 unix 时间time.time()。但是,我注意到当我获取当前时间并将其与之前的time.time()调用进行比较时,该值较低。

替代方法是使用time.monotonic(),因为它始终确保时间增加。但是它的返回值起点是未定义的意思,不是unix时间。

是否有其他一些调用(或模块)可以让我获得一个单调的 unix 时间,或者我是否必须获取当前日期和时间并手动转换它?

0 投票
2 回答
1294 浏览

linux - PPS:如何从 PPS 调整系统时钟?

在 Linux PPS 文档中说:

PPS 的意思是“每秒脉冲”,而 PPS 源只是每秒提供高精度信号的设备,以便应用程序可以使用它来调整系统时钟时间。

但我还没有找到如何调整系统时钟定时器(hwclock)。我宁愿不使用 ntp,只是以最简单的方式让系统计时器与 PPS 同步。

是否可以从 PPS 调整系统计时器(不使用 ntp)?

我也不完全理解 pps 时间,可以使用time_pps_fetch命令从用户空间读取(参见 ppstest.c 示例)

如果它是一个只有“每秒脉冲”的时钟,那么 linuxpps 如何提供纳秒分辨率?

0 投票
4 回答
828 浏览

python - 如何在 python 中提高睡眠/暂停时间的准确性?

我进行了一个实验来比较 python 和 C++ 中的睡眠/暂停时间准确性

实验总结:

在 1000000 次迭代的循环中,每次迭代睡眠 1 微秒。

预期持续时间: 1.000000 秒(对于 100% 准确的程序)

在蟒蛇中:

预期: 1.000000 秒,实际(大约): 2.603796

在 C++ 中:

预期: 1.000000 秒,实际(大约): 1.000040

很明显C++要准确得多,但是我正在用python开发一个项目,需要提高准确性。有任何想法吗?

PS如果你建议另一个python库/技术也没关系,只要它更准确:)

0 投票
1 回答
462 浏览

algorithm - Lamport同步算法讨论中的“部分排序”和“全排序”是什么意思?

我的理解是,部分排序和全排序是两组规则。

偏序有三个规则:
(1)如果a和b是同一进程中的两个事件并且a在b之前,那么a->b。
(2) ...
(3) ...

那么什么是全排序呢?

为什么会这样命名?