]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: speed up go test
authorFelix Geisendörfer <felix.geisendoerfer@datadoghq.com>
Tue, 2 Apr 2024 08:13:32 +0000 (10:13 +0200)
committerGopher Robot <gobot@golang.org>
Wed, 3 Apr 2024 22:49:46 +0000 (22:49 +0000)
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>

src/net/http/main_test.go

index 9022d4f124827b8bb1d82ecca072dffd40cf1d8c..4c1832071704e243c7155243a1842c58ed0136a4 100644 (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)
 }