From dc66b1dd1e513311c16cee398278fa2b6883de7c Mon Sep 17 00:00:00 2001 From: gmallard Date: Sat, 8 Mar 2014 12:31:30 -0500 Subject: [PATCH] Demo generate a CPU profile. --- Makefile | 1 + runpprof/runpprof.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 runpprof/runpprof.go diff --git a/Makefile b/Makefile index 831d7f5..f218c50 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ dirs = testppack \ rangecopy \ ranges \ recover \ + runpprof \ shax \ shifter \ show64 \ diff --git a/runpprof/runpprof.go b/runpprof/runpprof.go new file mode 100644 index 0000000..331acb0 --- /dev/null +++ b/runpprof/runpprof.go @@ -0,0 +1,43 @@ +/* +Demo generating a CPU profile. +*/ +package main + +import ( + "fmt" + "os" + "runtime/pprof" + "time" +) + +func runner() { + for i := 0; i < 1000000000; i++ { + for j := 0; j < 30; j++ { // + _ = i + j + } + } +} + +func main() { + s := time.Now() + fmt.Println("Start", s) + // + f, err := os.Create("./cpu.prof") + if err != nil { + panic(err) + } + err = pprof.StartCPUProfile(f) + if err != nil { + panic(err) + } + runner() + pprof.StopCPUProfile() + // + err = f.Close() + if err != nil { + panic(err) + } + e := time.Now() + fmt.Println("End", s) + fmt.Println("Elapsed", e.Sub(s)) +}