问题标签 [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 - 为什么插入空 ArrayList 比插入非空 ArrayList 需要更多时间?
我运行我的分析器程序进行了 1000 次迭代,以计算插入的Empty ArrayList
平均时间和插入的平均时间Non-Empty ArrayList
。我运行我的探查器程序ArrayList<Item>
,Item
类在哪里
探查器程序类似于
wheregetAverageTime(long [] timerecords)
方法以双倍的形式返回平均时间。多次运行该程序后,我观察到插入空 ArrayList 比插入非空 ArrayList 需要更多时间。一种这样的运行输出是
这背后的原因是什么?
java - nanoTime 比 currentTimeMillis 慢 10 倍的原因是什么?
考虑以下代码
输出如下:
这意味着该nanoTime()
函数比 . 慢 10 倍currentTimeMillis
。
如果它更慢,拥有更精确的功能是什么意思?
换句话说,Java 在作弊,可能通过等待一段时间待命来获得精确度。
更新
看看不确定性。nanoTime() 速度慢 10 倍,不确定性好 10 倍。
这意味着,绝对不确定性是相同的。
java - 为什么 Java System.timeNano() 显示相同的时间?
我想用下面的代码测试一些排序算法的运行时间
输出是
问题不在于算法,它正确地对数组进行排序,并且为大型数组完成这项工作需要相当长的时间。此示例运行大约需要 10 秒。我想我使用了 nanoTime(),就像 Java 文档中描述的那样。我搜索了这个问题的答案,似乎人们遇到了类似的问题。例如,这里 Java 中有秒表吗?. 但是,我找不到如何解决问题的答案。有人建议使用 apache 的 StopWatch,但据我了解,它使用了对 nanoTime() 的类似调用。那么,如何解决这个问题呢?如果它有所作为,我正在使用 jre 1.8.0_31 在 Windows 7 中运行代码。谢谢
java - 测量选择排序 for 循环的持续时间
预先道歉,这是我第一次发帖,我是编程新手。现在我正在编写一个程序,计算选择性排序算法完成排序所需的时间。该代码接受用户输入数组中有多少整数以及for循环在停止之前将经历多少次迭代,但我遇到了两个错误。
首先,我设置的计时器的输出一直输出 0。其次,我对如何实现我希望 for 循环运行多少次感到有些困惑。
我已经成功地运行了我的代码而没有错误,包括我认为我应该如何设置迭代次数,但是如果我无法在计时器上看到正确的输出,我无法判断我是否正确。
这是代码。我一直使用 10 作为两个输入,即数组大小和迭代次数,尽管更改这两个数字对我来说还没有产生任何结果。
现在,在打印长变量“持续时间”时,我尝试了类似于打印数组的不同迭代
但这不会改变输出为零。虽然当我尝试只打印“timeDiff”而不进行除法时,它给了我一个四位数的整数。
它还需要打印迭代次数和排序的项目数,但我稍后会处理这些。
如果帖子格式错误,我再次道歉,但我会感谢大家的任何意见。
java - 认知实验的精确时间测量
我们有一个用于某些认知诊断的 Java 程序,在该程序中,我们必须以最准确的方式测量时间。到目前为止,它一直使用 psychtoolbox 来执行这些测量,但是自从从 XP 迁移到 win7 后,这些测量出现了很大的错误。
它已经到了重新编程时间测量的需要,所以我们开始重新思考整个 matlab 的想法:我们应该坚持使用 psychtoolbox 吗?也许 java 的 Nanotime 会提供更好的解决方案?
java - 为什么第一次 nanoTime() 调用和后续调用之间的时间差异如此之大?
所以我的问题更笼统。我有以下简单的代码:
我收到以下输出:
第一个和第二个运行时差异的原因是什么?提前谢谢=)
java - 如何将 System.nanoTime 的结果转换为 Java 中的日期?
我想将结果转换为System.nanoTime()
日期。
我通过乘以 10^9 将秒转换为纳秒。现在我需要将当前系统时间加上我转换为纳秒的参数转换为日期。
java - 使用 getDeltaTime() 计算在 libgdx 中传递的时间
我正在尝试像这样计算在我的 libGDX 应用程序中传递的时间
通过上面的代码,我觉得时间几乎是正常速度的两倍
但是如果我像这样直接从java的纳米时间方法中获得增量时间
它似乎工作正常,我知道 libgdx 也从减去纳米时间方法中获得增量时间。
我无法弄清楚我在第一种方法中做错了什么。
谢谢你
java - 调用 Thread.sleep() 后,System.nanoTime() 测量经过时间的准确性降低
我在这里遇到了一个非常不寻常的问题。似乎调用 Thread.sleep(n),其中 n > 0 会导致以下 System.nanoTime() 调用难以预测。
下面的代码演示了这个问题。
在我的电脑(rMBP 15" 2015,OS X 10.11,jre 1.8.0_40-b26)上运行它会输出以下结果:
在运行 Windows 8 的虚拟机上(VMware Horizon、Windows 8.1 为 1.8.0_60-b27):
但是,在企业服务器(VMware、RHEL 6.7、jre 1.6.0_45-b06)上运行它:
这出乎我意料的结果。
显然 Thread.sleep(1) 会影响以下代码的计算。我不知道为什么会这样。有人有线索吗?
谢谢!
基本上我在一个while循环中运行一个搜索,每次迭代都会通过调用Thread.sleep()来中断。我想从运行搜索的总时间中排除睡眠时间,所以我使用 System.nanoTime() 来记录开始和结束时间。但是,正如您在上面注意到的那样,这效果不佳。
有没有办法解决这个问题?
感谢您的任何意见!
java - Thread.sleep(毫秒)精度
Thread.sleep(500) 将暂停当前线程至少 500 毫秒,我知道它可能比 500 多一点,但它永远不会少于那个。现在 1 毫秒 = 1000000 纳秒我想暂停当前线程 500 毫秒,即 = 500*1000000 纳秒但是当我运行以下代码时,它有时会以纳秒为单位休眠小于指定值。为什么是这样?以及如何睡眠至少 500*1000000 纳秒。
有时输出是