mirror of https://github.com/golang/go.git
doc/go1.17: mention block profile bias fix
Change-Id: I76fd872b2d74704396f0683ffa9cec40b7027247 Reviewed-on: https://go-review.googlesource.com/c/go/+/324471 Reviewed-by: Heschi Kreinick <heschi@google.com> Trust: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
parent
9afe071c60
commit
689f4c7415
|
|
@ -725,6 +725,16 @@ Do not send CLs removing the interior tags from such phrases.
|
||||||
</dd>
|
</dd>
|
||||||
</dl><!-- runtime/metrics -->
|
</dl><!-- runtime/metrics -->
|
||||||
|
|
||||||
|
|
||||||
|
<dl id="runtime/pprof"><dt><a href="/pkg/runtime/pprof">runtime/pprof</a></dt>
|
||||||
|
<dd>
|
||||||
|
<p><!-- CL 299991 -->
|
||||||
|
Block profiles are no longer biased to favor infrequent long events over
|
||||||
|
frequent short events.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
</dl><!-- runtime/pprof -->
|
||||||
|
|
||||||
<dl id="strconv"><dt><a href="/pkg/strconv/">strconv</a></dt>
|
<dl id="strconv"><dt><a href="/pkg/strconv/">strconv</a></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p><!-- CL 170079 -->
|
<p><!-- CL 170079 -->
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,28 @@ func TestCPUProfileMultithreaded(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCPUProfileThreadBias(t *testing.T) {
|
||||||
|
cpuHogA := func(dur time.Duration) {
|
||||||
|
cpuHogger(cpuHog1, &salt2, dur)
|
||||||
|
}
|
||||||
|
|
||||||
|
defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(2))
|
||||||
|
prof := testCPUProfile(t, stackContains, []string{"runtime/pprof.cpuHog1", "runtime/pprof.cpuHog2"}, avoidFunctions(), func(dur time.Duration) {
|
||||||
|
//c := make(chan int)
|
||||||
|
//go func() {
|
||||||
|
//cpuHogger(cpuHog1, &salt1, dur)
|
||||||
|
//c <- 1
|
||||||
|
//}()
|
||||||
|
cpuHogA(dur)
|
||||||
|
//<-c
|
||||||
|
})
|
||||||
|
fmt.Printf("%#v\n", prof)
|
||||||
|
}
|
||||||
|
|
||||||
|
func cpuHogA(dur time.Duration) {
|
||||||
|
cpuHogger(cpuHog1, &salt2, dur)
|
||||||
|
}
|
||||||
|
|
||||||
// containsInlinedCall reports whether the function body for the function f is
|
// containsInlinedCall reports whether the function body for the function f is
|
||||||
// known to contain an inlined function call within the first maxBytes bytes.
|
// known to contain an inlined function call within the first maxBytes bytes.
|
||||||
func containsInlinedCall(f interface{}, maxBytes int) bool {
|
func containsInlinedCall(f interface{}, maxBytes int) bool {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue