问题标签 [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 - 如何在 Android 中接收 Audiorecord 的硬件时间戳?
我需要检索AudioRecord class
读取缓冲区的时间戳。我需要以毫秒为单位跟踪时间。我尝试在读取缓冲区后添加时间戳检索,但是当我收到下一个缓冲区时,检索它所需的时间可能会波动很大。有没有办法从回调中接收录制音频的时间?
是我目前正在尝试的。
complexity-theory - nanoTime() 计时器的分辨率
我在帖子中搜索了与System.nanoTime()方法调用处理时间相关的答案。
考虑以下代码:
如果你运行它,currentTime - lastTime 将评估为“0”。发生这种情况的唯一方法是,如果计算机在纳秒的分辨率之外处理第二个方法调用(即调用花费的时间不到一纳秒)。从逻辑上讲,这是有道理的,因为计算机(平均而言)可以在一纳秒内执行多个进程。
这个对吗?如果不是,我的逻辑哪里错了?
c++ - C++ 中计时的纳秒精度
C ++中有没有办法获得纳秒精度?相当于 Java 中的纳秒计时器(System.nanotime)。
java - System.nanoTime() diff is 0
I have the following piece of code to try and determine how long a method call takes to execute:
When being executed on a specific Android device (Xperia P), this diff (finish - start) is 0 most of the time.
What is the reason for this? and is there any better way to try measuring the time this method takes to execute and return?
*Note that other Android devices behave differently
java - Java System.nanoTime() 与 System.currentTimeMillis()。为什么它们有不同的输出?
给定以下 Java 代码:
它给出了一个输出
我期待两者之间有一点区别,但我错了。
你知道伙计们为什么会这样吗?
java - 如何正确显示纳秒到秒的转换
我有一个 BFS 算法来解决 8-Puzzle,项目要求之一是输出找到最浅解决方案所需的时间。
我System.nanoTime()
用来跟踪应用程序的运行时间,因为它在一秒钟内解决了大多数给定的难题。
我遇到的问题是我转换我的nanoTime
的秒数转换为秒时,它以一种奇怪的格式显示。
使用以下代码:
这将产生输出:
我也尝试过使用浮点数来表示值。
是否有人能够提供更好的转换/显示方式,也许使用格式输出语句?
感谢您花时间阅读我的问题。
vxworks - 测量定时器功能的持续时间
我有一个计时器函数(用于轮询),我想每 1uS 调用一次,但我也想确保有足够的时间让其他任务运行,所以我想测量执行此函数所需的时间。为此,我认为我可以clock_gettime()
在函数的开始和结束时使用。现在我的问题是,返回的两次总是相同的,我只是不相信我的函数会在不到 1 纳秒的时间内完成——这不可能。CPU 的时钟频率为 800MHz。我的代码:
我究竟做错了什么?开始时间和停止时间总是一样的...
java - 使用 Java nanoTime 进行多线程
我目前正在用 Java 编写一个多线程程序。在某些时候,不同的线程会记录他们的动作,我正在使用nanoTime
它。每个线程都有自己的日志文件,最后我将它们合并并根据它们的时间(nanoTime
)对它们进行排序以查看发生了什么。问题是我有与此类似的错误行为,其中x
是一个volatile
变量:
所以在我看来,这nanoTime
并没有真正正确地计时。在nanoTime
文档中是这样写的:
仅当在 Java 虚拟机的同一实例中获得的两个此类值之间的差异被计算时,此方法返回的值才有意义。
由同一进程创建的线程是否有可能在不同的 JVM 中执行?这可以解释错误行为,nanoTime
但仍然没有太大意义。有任何想法吗?
java - 为什么结果不接近?(我只做一个试验)
我写了一个程序来计时某些平方根算法
我不想做 100/1000 次试验,因为我需要把这个程序放在科学展览板上,所以我不想通过使用基准测试等使程序复杂化。但是,当我这样做时,结果我变化很大。例如,一旦我得到
牛顿迭代:0.466200 毫秒(进行了 8 次迭代) 中点法:21.090700 毫秒(进行了 330 次迭代) 正割法:0.134500 毫秒(进行了 11 次迭代) Bhaskara-Brouncker 算法:1.315300 毫秒(进行了 132 次迭代)
另一次我得到牛顿迭代:0.550700 毫秒(进行了 8 次迭代)中点方法:23.168400 毫秒(进行了 330 次迭代)正割法:0.130400 毫秒(进行了 11 次迭代) Bhaskara-Brouncker 算法:1.078100 毫秒(进行了 132 次迭代)
现在我得到牛顿迭代:0.469500 毫秒(进行了 8 次迭代)中点方法:22.437700 毫秒(进行了 330 次迭代)正割法:0.189200 毫秒(进行了 11 次迭代) Bhaskara-Brouncker 算法:1.807600 毫秒(进行了 132 次迭代)
他们只是不是很接近。为什么会这样?我每次都在做同样的事情,而 java 不可能优化,因为我每次运行时只做一次。
那么最好的方法是什么?有几种可能的解决方案:
只做一次试验
- 优点:Java无法优化
- 缺点:不是很一致(如上所示)
做 1000 次试验
- 优点:相当一致
- 缺点:java会优化所以结果不准确
进行 1000 次试验,但每次使用 rand 更改我们近似平方根的值
- 优点:相当准确,无需优化
- 缺点:由于随机性,每次答案都会有所不同
做 969 次试验,但每次都做 2, 3, ..., 1000 的平方根(不包括 1,4,..,961)
- 优点:相当准确,无需优化
- 缺点:
我倾向于最后一个。这是一个好主意吗?
java - 查找纪元和当前时间之间的时间差
当使用 System.Time 获取其中一个时间值时,我需要找到两个时间值之间的差异。currentTimeMillis() 即它是the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC
,另一个是使用 System.nanoTime() 获取的,这意味着它是current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds
。
我该怎么做呢?