-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Labels
Description
- What version of Go are you using (
go version
)?
1.6.2 and tip - What operating system and processor architecture are you using (
go env
)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/pierre/Go"
GORACE=""
GOROOT="/home/pierre/.gimme/versions/go1.6.2.src"
GOTOOLDIR="/home/pierre/.gimme/versions/go1.6.2.src/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
- What did you do?
Run this benchmark:
package benchhttp
import (
"io"
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"
)
func Benchmark(b *testing.B) {
data := []byte("Foobar")
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
w.Write(data)
}))
defer srv.Close()
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
resp, err := http.Get(srv.URL)
if err != nil {
b.Fatal(err)
}
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}
})
}
With: go test -bench=. -benchmem -benchtime=10s
- What did you expect to see?
It should work.
- What did you see instead?
It takes a long time and crashes:
testing: warning: no tests to run
PASS
Benchmark-8 --- FAIL: Benchmark-8
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
benchhttp_test.go:21: Get http://127.0.0.1:45455: dial tcp 127.0.0.1:45455: connect: cannot assign requested address
ok _test/benchhttp 34.272s
During the benchmark, the value displayed by watch "ss -a | wc -l"
increases really quickly (around 30-40k).