我在帖子中搜索了一个与System.nanoTime( )方法调用处理时间有关的答案。
考虑以下代码
long lastTime = System.nanoTime();
long currentTime = System.nanoTime();
long deltaTime = currentTime - lastTime;如果运行此操作,currentTime - lastTime将计算为“0”。发生这种情况的唯一方法是,如果计算机在纳秒分辨率之外处理第二个方法调用(即调用时间小于纳秒)。从逻辑上讲,这是合理的,因为一台计算机可以(平均)在一个纳秒内执行多个进程。
是对的吗?,如果不是,我的逻辑哪里错了?
发布于 2013-05-23 00:49:35
理论上它会打印出"0“。在某些情况下,如果有许多其他任务正在执行,则可能会有细微的变化。
发布于 2013-05-23 00:57:17
这在理论上是正确的,假设绝对没有其他进程在运行,而且对Java方法的调用没有延迟。因此,在一个实际的系统上,这是不可能实现的,因为对Java方法的调用将导致严重的延迟。正如我在评论中所说的,在双核Android4.0.4手机上,我可以实现大约0.015毫秒的差异。
https://stackoverflow.com/questions/16703881
复制相似问题