问题标签 [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.

0 投票
3 回答
14460 浏览

java - Java System.nanoTime() 经过时间的巨大差异

我正在使用 android 小部件并检查两次 System.nanoTime() 调用之间的经过时间,而且这个数字很大。你如何用这个来衡量经过的时间?它应该是一秒钟的一小部分,而不是更多。谢谢

0 投票
4 回答
23945 浏览

java - java.sql.Timestamp 存储 NanoSeconds 的方式

java.sql.Timestamp 构造函数是这样的:

它基本上以毫秒为单位接受时间,然后提取最后 3 位数字并将其设为 nanos。因此,对于 1304135631 421的毫秒值,我得到 Timestamp.getnanos() 为 421000000。这是简单的计算(最后添加 6 个零)......似乎不是最佳的。

更好的方法可能是 Timestamp 构造函数,它接受以纳秒为单位的时间,然后从中计算出纳秒值。

如果您运行以下程序,您将看到实际纳秒与 Timestamp 计算纳秒的方式返回的纳秒之间的差异。

所以所有关于 Timestamp 的讨论都说它存储时间长达纳秒,似乎并不那么正确..不是吗?

0 投票
2 回答
338 浏览

java - 基于 System.nanoTime() 减慢时钟;

我有一个基于的计时器System.nanoTime() ,我想减慢它的速度。

我有这个:

where在课堂上较早地now被调用。System.nanoTime();

为了减慢速度,我尝试了:

但是后来我遇到了seconds被切成两半的问题,这是不可取的。beforeslow为 true 时,它​​在屏幕上显示 10 秒,而当slow true 时,它​​显示 5 秒,这是不可取的。

我想减慢计时器,而不是将其减半并减慢它

另一方面,它减慢了时间,这正是我想要的。

在不将现有时间减半的情况下,我将如何减慢时间?

0 投票
3 回答
1891 浏览

java - 将 Java 虚拟机与 System.nanoTime 同步

将 java 虚拟机与 System.nanoTime () 同步是否有意义?

我是说 :

  • 调用 System.nanoTime() 并将结果放入 t1
  • A向B发送数据包
  • 当 B 收到来自 A 的数据包时,B 调用 System.nanoTime() 并将结果发送给 A
  • 当 A 收到来自 B 的数据包时,A 调用 System.nanoTime() 并将结果放入 t3,将收到的来自 B 的数据包中的时间放入 t2
  • 时移 = (t3 - t1) / 2 - t2

使用 System.nanoTime 这样做是否正确?

谢谢 !

0 投票
1 回答
4084 浏览

java - 为什么我使用 System.nanoTime() 得到一个负的经过时间?

我正在尝试使用以下代码System.nanoTime()来测量代码的经过时间。

我得到这样的结果:

为什么我得到负值?

(操作系统:windows xp sp3,java:jdk1.6u27)

0 投票
4 回答
1840 浏览

java - 比较来自不同机器的 System.nanoTime() 值

比较在两台不同机器上调用 System.nanoTime() 产生的两个值是否正确?我会说不,因为 System.nanoTime() 通过使用依赖于处理器的时间戳计数器 (TSC)返回相对于某个任意点时间的纳秒精度时间。

如果我是对的,有没有办法(在 Java 中)在两台不同的机器上捕获一个瞬间,并以至少微秒精度甚至纳米级精度(安全地)比较这些值?

System.currentTimeMillis() 不是解决方案,因为它没有返回线性增加的时间戳数。用户或NTP等服务可以随时更改系统时钟,时间会前后跳跃。

0 投票
3 回答
1419 浏览

java - System.nanoTime 有什么问题?

我有一个很长的字符串,最后的模式</value>是,我正在尝试测试一些函数调用的性能,所以我进行了以下测试以试图找出答案......但我想我可能正在使用 nanoTime不正确?因为无论我如何交换订单,结果都没有意义......

我得到以下信息:

无论我交换它们的顺序,数字总是相同的......这里有什么交易?

来自 java.sun.com 网站的常见问题解答:

在代码中的各个点之间使用 System.nanoTime() 来执行经过时间的测量应该总是准确的。

还:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#nanoTime ()

0 投票
1 回答
80 浏览

java - 为什么我搜索的次数越多,我的搜索时间就越短?

我正在做一项任务,要求我测量两种不同的搜索算法所花费的时间,顺序和二进制(我想说明效率)。我有一个大约 280 个单词的目标列表和一个大约 1200 个单词的搜索池列表。我已经读取了这两个文件并将单词存储在 ArrayLists 中。

这是我到目前为止实现的顺序算法的相关位:

在此之后,我会显示进行的比较次数和经过的时间(以毫秒为单位,所以我先除以一百万)。

前几个数字的返回时间约为 0.5 到 0.7 毫秒。这个数字向下摆动到第 32 个字,耗时 0.1 毫秒。剩下的 150 个字都需要 0.0 ms。

我期望比较次数和经过的时间之间存在直接相关性。知道出了什么问题吗?

旁白:我想到 compareTo 方法进行的比较次数(即字长)可能会影响时间,但是即使是未出现在搜索列表中的长字(因此必须与之前的所有项目进行比较)得出结论)如果它们出现得更远,请不要花时间。

0 投票
2 回答
555 浏览

java - Java System.nanoTime 经过的平均时间越来越小

这不是我第一次在编程语言中遇到时钟时间问题。基本上,我通过在 while 循环中调用一个函数来测量它的运行速度。问题是由于某种原因,while 循环运行的时间越长,经过的时间越短。谁能解释一下?代码如下。

所以在大约 1,000 次运行后,经过的时间是 750k 到 850k。但是在大约 100,000 次运行后,经过的时间下降到 580,000 到 750,000。通过观察平均值 (stats.getMeans()) 可以最好地注意到持续下降,在 108k 循环之后,平均值约为 632k,而 3k 循环后平均值约为 100 万。切换到 currentTimeMillis 而不是 nanoTime 不会改变任何东西。

0 投票
1 回答
1663 浏览

java - java - system.nanoTime() 运行太慢

我在我的应用程序中使用 system.nanoTime 并计算相对于开始时间的时间。
我的应用程序运行得非常好,直到我将它复制到一台新计算机上,并且纳米时间给了我较慢的值。

我写了一个简单的应用程序只是为了确保。
纳米时间与系统时间进行比较。
它在除我的新计算机之外的其他计算机中显示相同的值。有什么建议么?

这是我的代码:首先我有

比我循环一个每秒运行的线程:

编辑:我正在使用 nano 因为我需要处理在 nano 时间内发生的甚至 ts 并将接收到的 nano time 打印到日志中