• Shenghou Ma's avatar
    runtime: use clock_gettime to get ns resolution for time.now & runtime.nanotime · 7777bac6
    Shenghou Ma authored
    For Linux/{386,arm}, FreeBSD/{386,amd64,arm}, NetBSD/{386,amd64}, OpenBSD/{386,amd64}.
    Note: our Darwin implementation already has ns resolution.
    
    Linux/386 (Core i7-2600 @ 3.40GHz, kernel 3.5.2-gentoo)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          110          118   +7.27%
    
    Linux/ARM (ARM Cortex-A8 @ 800MHz, kernel 2.6.32.28 android)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          625          542  -13.28%
    
    Linux/ARM (ARM Cortex-A9 @ 1GHz, Pandaboard)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          992          909   -8.37%
    
    FreeBSD 9-REL-p1/amd64 (Dell R610 Server with Xeon X5650 @ 2.67GHz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          699          695   -0.57%
    
    FreeBSD 9-REL-p1/amd64 (Atom D525 @ 1.80GHz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow         1553         1658   +6.76%
    
    OpenBSD/amd64 (Dell E6410 with i5 CPU M 540 @ 2.53GHz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow         1262         1236   -2.06%
    
    OpenBSD/i386 (Asus eeePC 701 with Intel Celeron M 900MHz - locked to 631MHz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow         5089         5043   -0.90%
    
    NetBSD/i386 (VMware VM with Core i5 CPU @ 2.7GHz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          277          278   +0.36%
    
    NetBSD/amd64 (VMware VM with Core i5 CPU @ 2.7Ghz)
    benchmark       old ns/op    new ns/op    delta
    BenchmarkNow          103          105   +1.94%
    
    Thanks Maxim Khitrov, Joel Sing, and Dave Cheney for providing benchmark data.
    
    R=jsing, dave, rsc
    CC=golang-dev
    https://golang.org/cl/6820120
    7777bac6
go1.1.html 4 KB