问题标签 [nanotime]
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.
android - SensorEvent.timestamp inconsistency
my application performs in background step counting using the step detector sensor API's introduced in android 4.4.X.
It's essential to my app to know the exact time (at least accuracy of a second) each step event has accrued.
because I perform sensor batching , the time onSensorChanged(SensorEvent event)
been called is not the same time when the step event took place - I must use the event.timestamp
field to get the event time.
the documentation about this field is:
The time in nanosecond at which the event happened
The problem:
In some devices (such Moto X 2013) seems like this timestamp is time in nano seconds since boot, while in some devices (such Nexus 5) it's actually returns universal system time in nano seconds same as System.currentTimeMills() / 1000
.
I understand, there's already an old open issue about that, but since sensor batching is introduced - it becomes important to use this field to know the event time, and it's not possible to rely anymore on the System.currentTimeMills()
My question:
What should I do to get always the event time in system milliseconds across all devices?
java - (增量时间)在 Java 中每秒获得 60 次更新
我已经多次看过这段代码。
上面的代码占用系统时间并将其存储到lastTime
. 60 个滴答应等于每秒更新的次数。
它需要now
并减去lastTime
,然后将其转换为纳秒/60。是否有一些保证,超过 60now
和lastTime
到 nano 之间的时间差会导致 delta 大于或等于每秒 1、60 次?我不明白为什么tick();
每秒会运行大约 60 次。根据我的计算,每次循环运行 delta 都会增加 0.0025 左右。
java - nanoTime 和 currentMilliSeconds 在 java 中的循环中使用
我正在尝试测量不同加密算法的速度。我想我会从记录当前时间(纳米或毫)开始,然后运行所需的操作,一旦完成,抓住时间并进行比较。
这一切都适用于一次迭代,但是一旦我尝试添加一个循环来自动测试多种算法,这些数字就不会加起来。
结果如下,第一个结果是正确的(我分别测试了两种算法),但第二个结果太小了。
(我使用片段来保持结果的格式)
我不确定为什么随后的结果发生得如此之快,或者为什么时间没有按应有的方式计算或其他什么。是否有可能正在缓存数据以加快该过程?
我添加了更多循环,并且每次后续迭代都比上一次小。
非常感谢
java - Android:检查 System.nanoTime 的值
在我的应用程序中,我以这种方式启动 nanoTime:
现在我希望在特定的“startTime”值(例如:1000000)被称为方法“myMethod”
最好的方法是什么?
java - 1000000000 纳秒似乎不等于一秒
我正在创造一些魔法咒语,显然我希望每次使用之间有一个延迟。
现在根据谷歌,一秒钟有 1000000000 纳秒。
然而,魔法咒语在不到两秒后就开始充电。
显然,我的代码试图添加System.nanoTime()
加 30 秒,然后检查当前系统nanoTime
是否大于我放入 hashmap 的系统,如果是,则执行拼写。
java - 系统无法处理以纳秒触发的事件,为什么?
我真的寻求关于以下内容的合乎逻辑的解释。我有一个timed task
当我运行该代码时,控制台中没有显示任何内容,但是我将其更改为:
控制台在run()
方法中显示消息。在我看来,系统无法以纳秒为单位处理时间,因为它们比系统时钟快。但是有一种方法叫做 怎么可能System.nanoTime()
,这意味着系统应该能够识别任务在特定的纳秒开始。
java - 当 System.nanoTime() 在调用之间返回相同的值时如何处理?
这个问题无意攻击System.nanoTime()
. 我意识到正确使用这是一种非常棘手的方法。
有哪些方法可以处理System.nanoTime()
在调用之间返回相同的值?示例:多个线程调用System.nanoTime()
并获得相同的值。
在 Windows 上运行测试时,我很惊讶在我的代码库中经常看到这种情况。我们nanoTime
用来对跨多个线程到达的事件进行排序。也许这只是一个 Windows 问题,而 Linux 单调时钟更加精细。
参考:
android - System.nanoTime() 在 Android 中给出错误的时间
我正在开发一个游戏,其中一些事件在预定的时间后发生。为此,我需要计算从游戏开始到现在已经过去了多少时间。我通过在主循环中启动一个线程并使用System.nanoTime()计算经过的时间来做到这一点。
我已经在我的智能手机上测试了代码,只要我不按下睡眠按钮让手机进入睡眠状态(这会触发活动的onpause()方法),它就可以很好地工作。但有时当我按下睡眠按钮时会发生一些非常奇怪的事情:似乎System.nanoTime()给出的时间比实际时间大(顺便说一句,从来没有更小)。
我曾尝试使用System.currentTimeMillis()代替System.nanoTime()但情况更糟(我知道在具有多核设备的 Windows 系统上System.nanoTime()存在一些问题;顺便说一下我的智能手机也是多核的)。
这是代码:
这是我不按睡眠按钮时的正常输出:
当我在 3 秒后按下睡眠按钮并在几秒钟后再次按下时,这是一个异常输出。(异常行为是从 4 到 6)如您所见,在不到 4 秒后,System.nanoTime()报告了 6 秒。
如何修改我的代码以避免这种行为?
java - System.nanoTime() 和其他时间相关的类
现在我正在为角色制作技能,我想添加冷却时间,但我不知道如何设置时间,但我想我知道它应该有哪些变量:
所以这是基本变量,但我完全不知道如何设置它们,我在游戏中有一个 update() 方法,一个 cast() 方法。请前辈停止!为任何愿意停止的人提供巧克力饼干
performance - JMeter 的 nanoThreadSleep 属性 - 我如何使用它?
我正在设置负载测试解决方案,并且在阅读 JMeter 的文档时,我发现您可以为测试计划设置许多属性。我的测试已经运行良好并产生了结果、图表等,但是当我试图更深入地了解 JMeter 和结果的准确性等时,我遇到了下面的简介。
从JMeter 的文档中,我阅读了以下内容:
现在,我知道这nanotime
将基于固定但任意的原始时间,而currenttimeinmillis
基于系统时间(即挂钟)。而且我知道这nanotime
会更精确,这就是我对使用它感兴趣的原因:我正在做负载测试,并且需要尽可能准确和精确的响应时间测量。
但我遇到的问题是了解如何使用nanoThreadSleep
. 究竟什么是纳米时间偏移?为什么我想要或不想要一个后台线程来计算纳米时间偏移量?如果我启用 JMeter 以使用 nanotime 运行,但不nanoThreadSleep
明确使用该设置,会发生什么情况?
我已经在 StackOverflow 和 Google 上搜索了某种解释,但除了 JMeter 的文档在我粘贴在这里的小简介中所说的以外,我找不到其他解释。其他人可以帮助我理解这一点以及我如何正确有效地使用它吗?