问题标签 [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.
java - 将 System.currentTimeMillis() 与 System.nanoTime() 结合使用是否合理?
这是我谦虚的建议:
- JVM 启动时
- 调用
System.currentTimeMillis()
并存储为开始“挂钟”时间:long currentTimeMillis0
. - 调用
System.nanoTime()
并存储为开始“纳米”时间:long nanoTime0
.
- 调用
- 在整个程序运行过程中,使用
System.nanoTime()
.
我很清楚 nanoTime 的确切值本身没有用,但在持续时间的上下文中使用时很有用:endNanoTime - beginNanoTime
.
那么,在任何记录的 nanoTime 中,将“currentTimeNanos”计算为: 是否合理
(1000L * currentTimeMillis0) + (anyNanoTime - nanoTime0)
?
java - Java - 将纳秒转换为 HH/MM/SS
在我的 Windows 机器上于上午 11:35 运行时,打印26
. 一天不可能有 26 小时,即使有,也不接近预期的结果11
。为什么这不起作用?(另外我不想使用任何时间日期库,我知道那里有更简单的方法)
希望这一切格式正确,因为我在我的手机上。感谢大家!
linux - System.nanotime 是向后还是向前跳跃
我在互联网上发现了多个(冲突的)来源,关于 System.Nanotime 是否“向后跳跃”
我发现消息来源表明时钟重置不会影响 System.nanotime。但是服务器重启会改变 system.nanotime 吗?System.Nanotime 是否存在向后或向前跳跃的情况?
具体来说:我将使用内部依赖于 nanotime 的 GO 的 Ticker
java - System.nanoTime() 似乎坏了。检查所需代码效率的替代方法
由于我想检查几种方法 ( foo(int)
) 的效率并将它们与整体运行时进行比较,因此我最终编写了类似于:
foo(int)
有时每次通话需要几分钟到半小时(但不是总共 293 年!)。现在的问题是,有时 TestDuration(方法所花费的整个时间)小于 methodDuration,这对我来说似乎是不可能的。因此有两个问题:
- 我的旧测试比较 methodDurations 仍然有效到多少?
- 我应该使用什么来进一步测试性能而不会有获得无效时间戳的危险?去会
System.currentTimeMillis()
安全还是有同样的问题?
目前测试在linux系统上进行。我已经在这里找到了一些关于这个问题的旧问题和答案(例如System.nanoTime() 完全没用吗?),但有些人说这是一个 Windows 问题,而其他答案仍然不清楚,因为他们提到,它们可能已经过时(而且它们是甚至几岁)。甚至大多数答案都相互矛盾!
java - 为什么相同的代码在 for 循环中会更短?
因此,我编写了一个相当愚蠢的程序,只是为了稍微使用 nanoTime。我希望能够检查少量代码的执行时间,所以我认为 nanoTime 是最好的。我想确定这段代码的平均执行时间,所以我把它放在一个 for 循环中。然而,当在 for 循环中时,平均下降到大约 6,000 纳秒。我知道这对小代码来说并没有太大的区别,但我很好奇为什么对于相同的确切代码会有任何不同?这是产生不同时间的两个块:这个平均约为 8064 纳秒:
这个平均约为 2200 纳秒:
然后找到你所用的平均值 totalTime*.1
java - 哪种方法是衡量java运行时方法性能速度的最可靠方法
我想测量我的方法在运行时执行中的性能速度,但我不确定我所做的是否真的测量了我想要的方法的性能或正在做其他事情。如果它衡量的是我的方法的性能速度,那么它的可靠性就更高了。我想测量性能速度的方法称为 FFMulFast,它计算伽罗瓦域 (256) 的两个多项式部分的乘法。注意:我将只提供与我的问题相关的代码。
android - Android - System.nanoTime() 奇怪的行为?
我已经在这个网站上搜索了我在我的 Android Marshmallow 应用程序中看到的答案。
我的应用程序测量收到的活动检测 api 意图之间的持续时间。在处理意图的例程中,我使用System.nanoTime()
并保留收到的值。在收到下一个意图时,我System.nanoTime()
从当前的持久存储中减去上一个时间System.nanoTime()
。
我的 logcat 时间戳条目表明意图活动之间发生了约 10 秒。使用 计算的经过时间System.nanoTime
显示在 1 到预期的 10~ 秒之间。
确定经过时间的所有处理都在单例对象中完成。计算的经过持续时间和当前纳米时间的持续时间都在这个单例中完成。
任何想法为什么值不正确?我的应用程序正在运行,但屏幕已锁定。
其中 lastTotalTime 是从持久存储加载的局部变量。变成
java - nanoTime 可以跨线程工作吗
我有一个将数据推送到队列中的线程和另一个从队列中读取数据并处理它的线程。我想在处理之前检查数据在队列中的停留时间。
System.nanoTime()
在被第一个线程推送之前,我在数据中添加了一个时间参数(使用 计算)。一旦第二个线程处理它,它将计算System.nanoTime()
并找到与数据中先前设置的时间的差异。
这会正常工作吗?我问这个是因为我在日志中看到了负面差异。
更新
我想澄清一下,开始时间是由不同机器中的进程设置的,而差异是在不同机器中计算的。
java - System.nanoTime() 在 java 7 和 java 8 之间返回不同的值
System.nanoTime()
当针对 java 7 和 java 8 编译和运行相同的代码时,返回不同的值。
这段代码:
在 java 7 上打印
这在java 8上
为什么以及如何发生这种情况?
运行时环境是 mac Sierra。