mirror of
https://github.com/golang/go
synced 2024-11-26 12:58:06 -07:00
cf52e70997
GetQueuedCompletionStatusEx has a ~16ms timeout resolution. Use a WaitCompletionPacket associated with the I/O Completion Port (IOCP) and a high resolution timer so the IOCP is signaled on timer expiry, therefore improving the GetQueuedCompletionStatusEx timeout resolution. BenchmarkSleep from the time package shows an important improvement: goos: windows goarch: amd64 pkg: time cpu: Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ Sleep-12 1258.5µ ± 5% 250.7µ ± 1% -80.08% (p=0.000 n=20) Fixes #44343. Change-Id: I79fc09e34dddfc49e0e23c3d1d0603926c22a11d Reviewed-on: https://go-review.googlesource.com/c/go/+/488675 Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Run-TryBot: Quim Muntal <quimmuntal@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> |
||
---|---|---|
.. | ||
testdata | ||
tzdata | ||
embed.go | ||
example_test.go | ||
export_android_test.go | ||
export_test.go | ||
export_windows_test.go | ||
format_rfc3339.go | ||
format_test.go | ||
format.go | ||
genzabbrs.go | ||
internal_test.go | ||
mono_test.go | ||
sleep_test.go | ||
sleep.go | ||
sys_plan9.go | ||
sys_unix.go | ||
sys_windows.go | ||
tick_test.go | ||
tick.go | ||
time_test.go | ||
time.go | ||
tzdata_test.go | ||
zoneinfo_abbrs_windows.go | ||
zoneinfo_android_test.go | ||
zoneinfo_android.go | ||
zoneinfo_goroot.go | ||
zoneinfo_ios.go | ||
zoneinfo_js.go | ||
zoneinfo_plan9.go | ||
zoneinfo_read.go | ||
zoneinfo_test.go | ||
zoneinfo_unix_test.go | ||
zoneinfo_unix.go | ||
zoneinfo_wasip1.go | ||
zoneinfo_windows_test.go | ||
zoneinfo_windows.go | ||
zoneinfo.go |