• 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
..
http Loading commit data...
mail Loading commit data...
rpc Loading commit data...
smtp Loading commit data...
testdata Loading commit data...
textproto Loading commit data...
url Loading commit data...
cgo_bsd.go Loading commit data...
cgo_linux.go Loading commit data...
cgo_netbsd.go Loading commit data...
cgo_stub.go Loading commit data...
cgo_unix.go Loading commit data...
dial.go Loading commit data...
dial_test.go Loading commit data...
dialgoogle_test.go Loading commit data...
dnsclient.go Loading commit data...
dnsclient_unix.go Loading commit data...
dnsconfig.go Loading commit data...
dnsmsg.go Loading commit data...
dnsmsg_test.go Loading commit data...
dnsname_test.go Loading commit data...
doc.go Loading commit data...
example_test.go Loading commit data...
fd.go Loading commit data...
fd_darwin.go Loading commit data...
fd_freebsd.go Loading commit data...
fd_linux.go Loading commit data...
fd_netbsd.go Loading commit data...
fd_openbsd.go Loading commit data...
fd_windows.go Loading commit data...
file.go Loading commit data...
file_plan9.go Loading commit data...
file_test.go Loading commit data...
file_windows.go Loading commit data...
hosts.go Loading commit data...
hosts_test.go Loading commit data...
interface.go Loading commit data...
interface_bsd.go Loading commit data...
interface_darwin.go Loading commit data...
interface_freebsd.go Loading commit data...
interface_linux.go Loading commit data...
interface_linux_test.go Loading commit data...
interface_netbsd.go Loading commit data...
interface_openbsd.go Loading commit data...
interface_stub.go Loading commit data...
interface_test.go Loading commit data...
interface_windows.go Loading commit data...
ip.go Loading commit data...
ip_test.go Loading commit data...
ipraw_test.go Loading commit data...
iprawsock.go Loading commit data...
iprawsock_plan9.go Loading commit data...
iprawsock_posix.go Loading commit data...
ipsock.go Loading commit data...
ipsock_plan9.go Loading commit data...
ipsock_posix.go Loading commit data...
lookup_plan9.go Loading commit data...
lookup_test.go Loading commit data...
lookup_unix.go Loading commit data...
lookup_windows.go Loading commit data...
mac.go Loading commit data...
mac_test.go Loading commit data...
multicast_test.go Loading commit data...
net.go Loading commit data...
net_posix.go Loading commit data...
net_test.go Loading commit data...
newpollserver.go Loading commit data...
parse.go Loading commit data...
parse_test.go Loading commit data...
pipe.go Loading commit data...
pipe_test.go Loading commit data...
port.go Loading commit data...
port_test.go Loading commit data...
port_unix.go Loading commit data...
sendfile_freebsd.go Loading commit data...
sendfile_linux.go Loading commit data...
sendfile_stub.go Loading commit data...
sendfile_windows.go Loading commit data...
server_test.go Loading commit data...
sock.go Loading commit data...
sock_bsd.go Loading commit data...
sock_linux.go Loading commit data...
sock_windows.go Loading commit data...
sockopt.go Loading commit data...
sockopt_bsd.go Loading commit data...
sockopt_linux.go Loading commit data...
sockopt_windows.go Loading commit data...
sockoptip.go Loading commit data...
sockoptip_bsd.go Loading commit data...
sockoptip_darwin.go Loading commit data...
sockoptip_freebsd.go Loading commit data...
sockoptip_linux.go Loading commit data...
sockoptip_netbsd.go Loading commit data...
sockoptip_openbsd.go Loading commit data...
sockoptip_windows.go Loading commit data...
tcpsock.go Loading commit data...
tcpsock_plan9.go Loading commit data...
tcpsock_posix.go Loading commit data...
timeout_test.go Loading commit data...
udp_test.go Loading commit data...
udpsock.go Loading commit data...
udpsock_plan9.go Loading commit data...
udpsock_posix.go Loading commit data...
unicast_test.go Loading commit data...
unixsock.go Loading commit data...
unixsock_plan9.go Loading commit data...
unixsock_posix.go Loading commit data...