aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/gc/util.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2017-04-02 18:37:04 -0700
committerJosh Bleecher Snyder <josharian@gmail.com>2017-04-03 01:48:59 +0000
commit96af8174975dcc18b6d13dad46c35bd1d7264d37 (patch)
tree4b2636b344e308018c0ad0d000d7df2dd22dc121 /src/cmd/compile/internal/gc/util.go
parent877574725ba251be743c47ecbe49958b6cf8b814 (diff)
downloadgo-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.go12
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)
}