mirror of
https://github.com/golang/go
synced 2024-11-18 20:04:52 -07:00
net/http/pprof: allow "seconds" parameters to most profiles
golang.org/cl/147598 added the support for delta computation for mutex and block profiles. In fact, this delta computation makes sense for other types of profiles. For example, /debug/pprof/allocs?seconds=x will provide how much allocation was made during the specified period. /debug/pprof/goroutine?seconds=x will provide the changes in the list of goroutines. This also makes sense for custom profiles. Update #23401 Update google/pprof#526 Change-Id: I45e9073eb001ea5b3f3d16e5a57f635193610656 Reviewed-on: https://go-review.googlesource.com/c/go/+/229537 Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
This commit is contained in:
parent
3e342e8719
commit
0ee4b13830
@ -334,8 +334,12 @@ func collectProfile(p *pprof.Profile) (*profile.Profile, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var profileSupportsDelta = map[handler]bool{
|
var profileSupportsDelta = map[handler]bool{
|
||||||
"block": true,
|
"allocs": true,
|
||||||
"mutex": true,
|
"block": true,
|
||||||
|
"goroutine": true,
|
||||||
|
"heap": true,
|
||||||
|
"mutex": true,
|
||||||
|
"threadcreate": true,
|
||||||
}
|
}
|
||||||
|
|
||||||
var profileDescriptions = map[string]string{
|
var profileDescriptions = map[string]string{
|
||||||
|
@ -49,6 +49,7 @@ func TestHandlers(t *testing.T) {
|
|||||||
{"/debug/pprof/trace", Trace, http.StatusOK, "application/octet-stream", `attachment; filename="trace"`, nil},
|
{"/debug/pprof/trace", Trace, http.StatusOK, "application/octet-stream", `attachment; filename="trace"`, nil},
|
||||||
{"/debug/pprof/mutex", Index, http.StatusOK, "application/octet-stream", `attachment; filename="mutex"`, nil},
|
{"/debug/pprof/mutex", Index, http.StatusOK, "application/octet-stream", `attachment; filename="mutex"`, nil},
|
||||||
{"/debug/pprof/block?seconds=1", Index, http.StatusOK, "application/octet-stream", `attachment; filename="block-delta"`, nil},
|
{"/debug/pprof/block?seconds=1", Index, http.StatusOK, "application/octet-stream", `attachment; filename="block-delta"`, nil},
|
||||||
|
{"/debug/pprof/goroutine?seconds=1", Index, http.StatusOK, "application/octet-stream", `attachment; filename="goroutine-delta"`, nil},
|
||||||
{"/debug/pprof/", Index, http.StatusOK, "text/html; charset=utf-8", "", []byte("Types of profiles available:")},
|
{"/debug/pprof/", Index, http.StatusOK, "text/html; charset=utf-8", "", []byte("Types of profiles available:")},
|
||||||
}
|
}
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
|
Loading…
Reference in New Issue
Block a user