问题标签 [elapsedtime]
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 实时音频采集 - 丢失一些样本?
我写了这个类,来获取音频数据。我想使用音频输入来采样实时射频信号。我以 44kHz 的频率进行采样,并且我希望通过测量总采集样本来了解经过的时间,知道采样频率。
我不知道为什么我发现 system.nanoTime 测量的经过时间和获取的样本除以频率之间存在增量时间。为什么每次我开始/停止采集时这个大约 170 毫秒的增量都会发生变化?我是否会从采集的信号中丢失样本?
基本上,我所做的是调用这个类并将started
布尔值设置为true
,然后几秒钟后我将此布尔值设置为false
,然后该类退出 while 循环,然后我测量经过的时间并提取增量。
这是我的测试代码:
我问了这个问题,以解决这个问题:我需要计算在麦克风输入上接收到的 2 个特定信号波形之间的精确经过时间。我希望至少有 1 毫秒的精度,如果可以实现更高的精度更好。这段代码只是一个开始测试。可以计算我可以达到高精度的样本吗?我担心我会因为处理时间而丢失一些样品?
cuda - 在 cuda 中使用和不使用共享内存的矩阵乘法所用时间之间的差异
我是 cuda 编程的新手。我的程序是有和没有共享内存的矩阵乘法。我使用 Cuda_C_Programming_Guide 电子书中的代码。在书中我们看到使用共享内存的程序的运行时间少于 none_shared 程序的运行时间。但是当我运行程序时,反之亦然。有谁知道为什么?还是我错了?非共享内存:
使用共享内存:
我运行调试。我的程序运行时的输出窗口是:
例如,矩阵 1000*1000 的结果对于非共享代码约为 1219 毫秒,对于共享内存代码约为 1770 毫秒。
当我运行发布项目时,程序没有成功运行并在错误列表中显示一些错误。但我不知道为什么!释放模式下的输出窗口为:
我在两种模式下都运行了 vectorAdd。然后我将我的代码粘贴到那个项目中。在调试模式下它没有问题,非共享的结果约为 1372 毫秒,共享内存中的结果约为 1842 毫秒。但在发布模式下,它会显示一个新窗口,提示:“找不到或不匹配‘vectorAdd.exe’的调试信息。二进制文件不是使用调试信息构建的。要继续调试吗?” ,当我单击“是”时,它会继续运行并且没有错误。非共享的结果约为 645 毫秒,共享内存中的结果约为 183 毫秒。我不明白为什么在发布模式下结果反之亦然,哪一个是真的?发布模式的结果是否适用于每个项目或调试模式?
javascript - Getting Elapsed Time in JS
I am making a social network and when you post something, I want to show the time. I have the current code to display the time (this isn't only the time, it's also validating and posting the text):
When the time posts, it says 0 minutes ago (like I told it to), but after any amount of time, it still says 0.
android - 在 Android 上测量长时间的运行时间(重新启动)
我需要在 Android 上测量经过的长时间,并且其间可能会重新启动设备。
据我了解,System.nanoTime()
每次设备重新启动时都会重置,并且System.currentTimeMillis()
不可靠,因为用户可以更改它。
我想出的唯一解决方案是听ACTION_SHUTDOWN
and BOOT_COMPLETED
,System.currentTimeMillisec()
用来计算经过的时间(用户不能在设备关闭时更改时钟时间,希望 :) )并将其添加到System.nanoTime()
我关闭之前的最后一个时间。
老实说,我不喜欢这个解决方案,因为它非常昂贵(我需要收听 2 个广播事件)并且不准确,但我想不出任何其他方法来做到这一点。
有任何想法吗?本地解决方案也对我有好处。
c++ - 不使用系统时钟的时间测量
有没有办法在不使用系统时钟的情况下测量 linux/unix 中的经过时间?问题是系统时钟在某些情况下会发生变化,并且由time
或gettimeofday
其他类似的东西测量的经过时间会给出不正确的结果。
我正在考虑创建单独的线程,该线程在sleep(100)
内部执行循环并计算重复次数。
有更好的解决方案吗?
c# - 如何c#几个准确的计时器(正好10毫秒的间隔)
我已经开始使用 C# (VS2010 .Net Fw 4.0) 进行桌面应用程序开发,涉及多个计时器。
起初,我使用System.Timers来通过 USB 将数据发送到数据总线。我的观点是,我需要以几个特定的时间间隔发送不同的周期性二进制消息,例如 10ms、20ms、40ms、100ms、500ms、1000ms ....
在每个计时器中,我都有一个回调函数,它必须为每个引发的事件发送正确的数据流。
问题是当我有全部信号工作时,实际间隔与预期不同(3000ms 增加到 3500,100ms 增加到 340),因为当我将 10ms 增加到 40ms 计时器时,cpu 几乎 100% 过载并丢失所有精度。
我正在使用 2GB RAM 和 2CPU 内核的 VMWare 工作。主机是 i7-2600K CPU @ 3,40GHz。我认为这不是问题。(但我认为)。
在我写到这里之前,我一直在寻找一个关于如何使用最优化的资源消耗更精确地计时的答案。但我发现它并不具体。
我已经知道System.Diagnostics.Stopwatch在这里阅读它,但是这个类没有事件。还有System.Windows.Forms.Timer但更不精确,分辨率低。
这里有一个很好的微秒分辨率实现,但这是我的 CPU 超载的原因!
你觉得我接下来的步骤怎么样!?我会很感激你有任何帮助或想法
10% 的时间分辨率是 10ms 间隔内的目标!
我会澄清你需要的任何额外信息!
c - FLT_MIN 的乘法花费了巨大的时间
与其他浮点乘法相比,浮点乘法导致受 FLT_MIN 接缝限制的结果非常慢。在我的 Linux 机器上运行下面的示例代码,我得到了以下结果:
运算 1.17549e-38 * 0.9 似乎比其他经过测试的乘法运算花费的时间至少长 25 倍。这是一个众所周知的问题吗?
在一个时间紧迫的项目中,需要执行大量可能导致 FLT_MIN 的乘法,有什么方法可以快速解决这个问题?(我不能在乘法之前检查每个值,但我可以容忍乘法结果中出现 e-5 量级的错误)
shell - 1394661620440271000/1000000:没有这样的文件或目录
我在我的 shell 脚本中运行此命令以获取以毫秒为单位的时间:
但是我不断收到错误消息:
我试图通过添加括号、额外的美元符号来更改代码,但我不断收到不同类型的错误。如何修复代码?有人可以帮忙吗?
mysql - 在mysql中的两个时间之间选择第一个空闲日期时间
我想找到一个最好的日期时间,之前有 20 分钟的空闲时间,并且过去至少有 20 分钟。所以
在数据库中:
- 2014-03-24 10:30
- 2014-03-24 11:10
- 2014-03-24 12:00
- 2014-03-24 12:30
如果我在 11:15 运行,我想获得 2014-03-24 11:30,因为 11-30-11:10 = 20 和 12:00-11:30 >= 20。
所以,我需要选择一个日期时间而不是数据库中的一行(稍后插入)。我需要在数据库中找到前后有 20-20 分钟空白期的最近日期。否则,我正在寻找它在数据库中的 40 分钟漏洞并获得中间。
这可以在mysql查询中解决吗?谢谢 :)
android - 如何获取格式为“HH:mm:ss”的服务持续时间
发现此站点上的代码并且此代码适用于我的情况,但是有没有办法可以直接获取经过的时间“持续时间”并使用 SimpleDateFormat(“HH:mm:ss”)对其进行格式化?更具体地说..我想要这样的东西,而不需要从 1970 年获得 HH:mm:ss :),例如:“00:00:10”
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 持续时间=结束时间-开始时间;durationStr=sdf.format(duration);