• Dmitriy Vyukov's avatar
    net/http: reduce mutex contention · 20f6a8fd
    Dmitriy Vyukov authored
    benchmark                           old ns/op    new ns/op    delta
    BenchmarkClientServerParallel          155909       154454   -0.93%
    BenchmarkClientServerParallel-2         86012        82986   -3.52%
    BenchmarkClientServerParallel-4         70211        55168  -21.43%
    BenchmarkClientServerParallel-8         80755        47862  -40.73%
    BenchmarkClientServerParallel-12        77753        51478  -33.79%
    BenchmarkClientServerParallel-16        77920        50278  -35.47%
    The benchmark is https://golang.org/cl/6441134
    The machine is 2 x 4 HT cores (16 HW threads total).
    Fixes #3946.
    Now contention moves to net.pollServer.AddFD().
    
    R=bradfitz
    CC=bradfitz, dave, dsymonds, gobot, golang-dev, remyoudompheng
    https://golang.org/cl/6454142
    20f6a8fd
Name
Last commit
Last update
..
cgi Loading commit data...
fcgi Loading commit data...
httptest Loading commit data...
httputil Loading commit data...
pprof Loading commit data...
testdata Loading commit data...
chunked.go Loading commit data...
chunked_test.go Loading commit data...
client.go Loading commit data...
client_test.go Loading commit data...
cookie.go Loading commit data...
cookie_test.go Loading commit data...
doc.go Loading commit data...
example_test.go Loading commit data...
export_test.go Loading commit data...
filetransport.go Loading commit data...
filetransport_test.go Loading commit data...
fs.go Loading commit data...
fs_test.go Loading commit data...
header.go Loading commit data...
header_test.go Loading commit data...
jar.go Loading commit data...
lex.go Loading commit data...
lex_test.go Loading commit data...
proxy_test.go Loading commit data...
range_test.go Loading commit data...
readrequest_test.go Loading commit data...
request.go Loading commit data...
request_test.go Loading commit data...
requestwrite_test.go Loading commit data...
response.go Loading commit data...
response_test.go Loading commit data...
responsewrite_test.go Loading commit data...
serve_test.go Loading commit data...
server.go Loading commit data...
sniff.go Loading commit data...
sniff_test.go Loading commit data...
status.go Loading commit data...
transfer.go Loading commit data...
transport.go Loading commit data...
transport_test.go Loading commit data...
triv.go Loading commit data...