mirror of https://github.com/golang/go.git
Fetch both monotonic and wall time together when possible. Avoids skew and is cheaper. Also shave a few ns off in conversion in package time. Compared to current implementation (after monotonic changes): name old time/op new time/op delta Now 19.6ns ± 1% 9.7ns ± 1% -50.63% (p=0.000 n=41+49) darwin/amd64 Now 23.5ns ± 4% 10.6ns ± 5% -54.61% (p=0.000 n=30+28) windows/amd64 Now 54.5ns ± 5% 29.8ns ± 9% -45.40% (p=0.000 n=27+29) windows/386 More importantly, compared to Go 1.8: name old time/op new time/op delta Now 9.5ns ± 1% 9.7ns ± 1% +1.94% (p=0.000 n=41+49) darwin/amd64 Now 12.9ns ± 5% 10.6ns ± 5% -17.73% (p=0.000 n=30+28) windows/amd64 Now 15.3ns ± 5% 29.8ns ± 9% +94.36% (p=0.000 n=30+29) windows/386 This brings time.Now back in line with Go 1.8 on darwin/amd64 and windows/amd64. It's not obvious why windows/386 is still noticeably worse than Go 1.8, but it's better than before this CL. The windows/386 speed is not too important; the changes just keep the two architectures similar. Change-Id: If69b94970c8a1a57910a371ee91e0d4e82e46c5d Reviewed-on: https://go-review.googlesource.com/36428 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> |
||
|---|---|---|
| .. | ||
| example_test.go | ||
| export_android_test.go | ||
| export_test.go | ||
| export_windows_test.go | ||
| format.go | ||
| format_test.go | ||
| genzabbrs.go | ||
| internal_test.go | ||
| mono_test.go | ||
| sleep.go | ||
| sleep_test.go | ||
| sys_plan9.go | ||
| sys_unix.go | ||
| sys_windows.go | ||
| tick.go | ||
| tick_test.go | ||
| time.go | ||
| time_test.go | ||
| zoneinfo.go | ||
| zoneinfo_abbrs_windows.go | ||
| zoneinfo_android.go | ||
| zoneinfo_android_test.go | ||
| zoneinfo_ios.go | ||
| zoneinfo_plan9.go | ||
| zoneinfo_read.go | ||
| zoneinfo_test.go | ||
| zoneinfo_unix.go | ||
| zoneinfo_windows.go | ||
| zoneinfo_windows_test.go | ||