• Alex Brainman's avatar
    runtime: change osyield to use Windows SwitchToThread · 1f5b1b2b
    Alex Brainman authored
    It appears that windows osyield is just 15ms sleep on my computer
    (see benchmarks below). Replace NtWaitForSingleObject in osyield
    with SwitchToThread (as suggested by Dmitry).
    
    Also add issue #14790 related benchmarks, so we can track perfomance
    changes in CL 20834 and CL 20835 and beyond.
    
    Update #14790
    
    benchmark                             old ns/op     new ns/op     delta
    BenchmarkChanToSyscallPing1ms         1953200       1953000       -0.01%
    BenchmarkChanToSyscallPing15ms        31562904      31248400      -1.00%
    BenchmarkSyscallToSyscallPing1ms      5247          4202          -19.92%
    BenchmarkSyscallToSyscallPing15ms     5260          4374          -16.84%
    BenchmarkChanToChanPing1ms            474           494           +4.22%
    BenchmarkChanToChanPing15ms           468           489           +4.49%
    BenchmarkOsYield1ms                   980018        75.5          -99.99%
    BenchmarkOsYield15ms                  15625200      75.8          -100.00%
    
    Change-Id: I1b4cc7caca784e2548ee3c846ca07ef152ebedce
    Reviewed-on: https://go-review.googlesource.com/21294
    Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
    Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
    Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    1f5b1b2b
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang.org/x/net/http2/hpack Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...