golang/go

runtime/pprof: improve docs around short-lived processes

Open

#20,202 opened on 2017年5月1日

GitHub で見る
 (11 comments) (0 reactions) (0 assignees)Go (19,008 forks)batch import
DocumentationNeedsFixcompiler/runtimehelp wanted

Repository metrics

Stars
 (133,883 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

What version of Go are you using (go version)?

go version go1.8.1 darwin/amd64

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/v832043/Code"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.8.1/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.8.1/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/zj/hgnczfs53zg8s4_d_t686715y61ynl/T/go-build686693782=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

What did you do?

Added basic CPU profiling code to main():

f, err := os.Create("test.prof")
if err != nil {
	log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()

Then I ran my program and threw a load tester at it.

What did you expect to see?

Data in test.prof after gracefully exiting my program.

What did you see instead?

After heavily loading my program with a load testing tool I made I observed that no bytes were ever written to test.prof. It seems like there is no sampling being done at all...?

コントリビューターガイド