/** * Returns the current value of the most precise available system timer, * in nanoseconds. This method can only be used to measure elapsed time and * is not related to any other notion of system or wall-clock time. The * value returned represents nanoseconds since some fixed but arbitrary * time (perhaps in the future, so values may be negative). This method * provides nanosecond precision, but not necessarily nanosecond accuracy. * No guarantees are made about how frequently values change. Differences * in successive calls that span greater than approximately 292 years * (2^63 nanoseconds) will not accurately compute elapsed time due to * numerical overflow. * <p> * <em>Implementation note:</em>By default, this method uses * <code>sun.misc.Perf</code> on Java 1.4.2, and falls back to * System.currentTimeMillis() emulation on earlier JDKs. Custom * timer can be provided via the system property * <code>edu.emory.mathcs.backport.java.util.concurrent.NanoTimerProvider</code>. * The value of the property should name a class implementing * {@link NanoTimer} interface. * <p> * Note: on JDK 1.4.2, <code>sun.misc.Perf</code> timer seems to have * resolution of the order of 1 microsecond, measured on Linux. * * @return The current value of the system timer, in nanoseconds. */ public static long nanoTime() { return nanoTimer.nanoTime(); }
/** * Returns the current value of the most precise available system timer, * in nanoseconds. This method can only be used to measure elapsed time and * is not related to any other notion of system or wall-clock time. The * value returned represents nanoseconds since some fixed but arbitrary * time (perhaps in the future, so values may be negative). This method * provides nanosecond precision, but not necessarily nanosecond accuracy. * No guarantees are made about how frequently values change. Differences * in successive calls that span greater than approximately 292 years * (2^63 nanoseconds) will not accurately compute elapsed time due to * numerical overflow. * <p> * <em>Implementation note:</em>By default, this method uses * <code>sun.misc.Perf</code> on Java 1.4.2, and falls back to * System.currentTimeMillis() emulation on earlier JDKs. Custom * timer can be provided via the system property * <code>edu.emory.mathcs.backport.java.util.concurrent.NanoTimerProvider</code>. * The value of the property should name a class implementing * {@link NanoTimer} interface. * <p> * Note: on JDK 1.4.2, <code>sun.misc.Perf</code> timer seems to have * resolution of the order of 1 microsecond, measured on Linux. * * @return The current value of the system timer, in nanoseconds. */ public static long nanoTime() { return nanoTimer.nanoTime(); }
/** * Returns the current value of the most precise available system timer, * in nanoseconds. This method can only be used to measure elapsed time and * is not related to any other notion of system or wall-clock time. The * value returned represents nanoseconds since some fixed but arbitrary * time (perhaps in the future, so values may be negative). This method * provides nanosecond precision, but not necessarily nanosecond accuracy. * No guarantees are made about how frequently values change. Differences * in successive calls that span greater than approximately 292 years * (2^63 nanoseconds) will not accurately compute elapsed time due to * numerical overflow. * <p> * <em>Implementation note:</em>By default, this method uses * <code>sun.misc.Perf</code> on Java 1.4.2, and falls back to * System.currentTimeMillis() emulation on earlier JDKs. Custom * timer can be provided via the system property * <code>edu.emory.mathcs.backport.java.util.concurrent.NanoTimerProvider</code>. * The value of the property should name a class implementing * {@link NanoTimer} interface. * <p> * Note: on JDK 1.4.2, <code>sun.misc.Perf</code> timer seems to have * resolution of the order of 1 microsecond, measured on Linux. * * @return The current value of the system timer, in nanoseconds. */ public static long nanoTime() { return nanoTimer.nanoTime(); }