net/http: speed up go test

Optimize the execution speed of go test ./net/http from ~38s to ~28s.
This is achieved by shortening the sleep interval utilized for
identifying goroutine leaks.

This optimization is motivated by noticing significant periods of
inactivity in the -trace output. Even after applying this CL, many
Off-CPU wait periods seem to remain:

$ go test ./net/http
ok      net/http        27.744s

real    0m28.204s
user    0m4.991s
sys     0m1.797s

Change-Id: I6108ebbb715c33900f1506d810c0a8f8ed674d35
Reviewed-on: https://go-review.googlesource.com/c/go/+/575975
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Damien Neil <dneil@google.com>
This commit is contained in:
Felix Geisendörfer 2024-04-02 10:13:32 +02:00 committed by Gopher Robot
parent 4b2db7f60d
commit a4440e3d23

View file

@ -142,7 +142,7 @@ func afterTest(t testing.TB) {
").noteClientGone(": "a closenotifier sender",
}
var stacks string
for i := 0; i < 10; i++ {
for i := 0; i < 2500; i++ {
bad = ""
stacks = strings.Join(interestingGoroutines(), "\n\n")
for substr, what := range badSubstring {
@ -156,7 +156,7 @@ func afterTest(t testing.TB) {
}
// Bad stuff found, but goroutines might just still be
// shutting down, so give it some time.
time.Sleep(250 * time.Millisecond)
time.Sleep(1 * time.Millisecond)
}
t.Errorf("Test appears to have leaked %s:\n%s", bad, stacks)
}