Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

5
  • Modern processors (>1ghz) cycle faster than 1 nanosecond, so they are technically quite capable. Commented Sep 30, 2009 at 22:29
  • 3
    They could keep track of the time, but it doesn't mean that they are reporting time that accurately. Commented Sep 30, 2009 at 22:30
  • 3
    Don't forget that there's overhead: There's a system call involved which is typically on the order of microseconds itself (just to jump in to kernel and back out, but that's the expensive part for a clock read). Then you might have a loaded system with pre-emption enabled meaning some other process might get scheduled. Even if this isn't the case, that means you still have to jump into the JVM & even with JITed code there's going to be a slight overhead. In native gode, you can use the clock_gettime & friends API for exploring the accuracy of high-resolution timers. Commented Sep 30, 2009 at 22:54
  • Indeed, I just tried, on my home machine, it looks like nanotime does take more than one microsecond (mean is 1.2, measured by calling it 100000 times). Commented Sep 30, 2009 at 23:06
  • linux time tick precision is 10ms by default, so asking for nano second is not useful unless you tune the kernal to support it (the url of how to tune is in my answer) Commented Sep 30, 2009 at 23:23