On 4/28/16 5:09 PM, David Holmes wrote:
bug: https://bugs.openjdk.java.net/browse/JDK-8154710
webrev: http://cr.openjdk.java.net/~dholmes/8154710/webrev/

src/os/solaris/vm/os_solaris.cpp
    L1356: static _get_nsec_fromepoch_func_t  _get_nsec_fromepoch = NULL;
        nit: two spaced between the type and the var name.
        Not sure why since you aren't lining up with anything.

    L4444:     Solaris::_pthread_setname_np =  // from 11.3
        Thanks for documenting the release.

    L4450:
        nit: why add a blank line?

Thumbs up!  Nits only so feel free to fix or ignore, but don't
need another webrev.

Dan



This change is small in nature but somewhat broad in scope. It "affects" the implementation of System.currentTimeMillis() in the Java space, and os::javaTimeMillis() in the VM. But on Solaris only.

I say "affects" but the change will be unobservable other than in terms of performance.

As of Solaris 11.3.6 a new in-memory timestamp has been made available (not unlike what has always existed on Windows). There are actually 3 different timestamps exported but the one we are interested in is get_nsecs_fromepoch - which is of course elapsed nanoseconds since the epoch - which is exactly what javaTimeMillis() is, but expressed in milliseconds. The in-memory timestamps have an update accuracy of 1ms, so are not suitable for any other API's that want the time-of-day, but at a greater accuracy.

Microbenchmark shows the in-memory access is approx 45% faster (19ns on my test system) compared to the gettimeofday call (35ns).

Thanks,
David


Reply via email to