diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2017-04-02 18:37:04 -0700 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2017-04-03 01:48:59 +0000 |
commit | 96af8174975dcc18b6d13dad46c35bd1d7264d37 (patch) | |
tree | 4b2636b344e308018c0ad0d000d7df2dd22dc121 /src/cmd/compile/internal/gc/util.go | |
parent | 877574725ba251be743c47ecbe49958b6cf8b814 (diff) | |
download | go-96af8174975dcc18b6d13dad46c35bd1d7264d37.tar.gz go-96af8174975dcc18b6d13dad46c35bd1d7264d37.zip |
cmd/compile: add block profiling support
Updates #15756
Change-Id: Ic635812b324af926333122c02908cebfb24d7bce
Reviewed-on: https://go-review.googlesource.com/39208
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/gc/util.go')
-rw-r--r-- | src/cmd/compile/internal/gc/util.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/util.go b/src/cmd/compile/internal/gc/util.go index 947d8a8516..97fff063f8 100644 --- a/src/cmd/compile/internal/gc/util.go +++ b/src/cmd/compile/internal/gc/util.go @@ -32,6 +32,7 @@ func Exit(code int) { } var ( + blockprofile string cpuprofile string memprofile string memprofilerate int64 @@ -73,6 +74,17 @@ func startProfile() { // Not doing memory profiling; disable it entirely. runtime.MemProfileRate = 0 } + if blockprofile != "" { + f, err := os.Create(blockprofile) + if err != nil { + Fatalf("%v", err) + } + runtime.SetBlockProfileRate(1) + atExit(func() { + pprof.Lookup("block").WriteTo(f, 0) + f.Close() + }) + } if traceprofile != "" && traceHandler != nil { traceHandler(traceprofile) } |