我正在为一些事情计时,我不能把它们放在一个长循环中。我需要给它们计时,看看它们需要多长时间才能完成,但在java中,计时器似乎有15-16毫秒的精度?我怎么才能避免这个问题呢?
发布于 2009-08-07 15:24:12
Clocks and Timers - General Overview
用于时钟和定时器的Java编程API绝对“时间”时钟由System.currentTimeMillis()方法表示,该方法返回自纪元起以毫秒为单位的挂钟时间的毫秒表示。因此,它使用操作系统的“时刻”时钟。该时钟的更新分辨率通常与定时器中断相同(例如,10ms),但在某些系统上是固定的,与中断速率无关。
相对时间时钟由System.nanoTime()方法表示,该方法返回以纳秒为单位的“自由运行”时间。此时间仅在与其他nanoTime值进行比较时有用。nanoTime方法使用平台上可用的最高分辨率时钟,虽然其返回值以纳秒为单位,但更新分辨率通常仅为微秒。然而,在一些系统上,除了使用与currentTimeMillis()相同的时钟源之外别无选择-幸运的是,这种情况很少见,并且主要影响旧的Linux系统和Windows98。
https://stackoverflow.com/questions/1245388
复制相似问题