aboutsummaryrefslogtreecommitdiff
path: root/weed/util/pprof.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util/pprof.go')
-rw-r--r--weed/util/pprof.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/weed/util/pprof.go b/weed/util/pprof.go
new file mode 100644
index 000000000..94bcdb8b3
--- /dev/null
+++ b/weed/util/pprof.go
@@ -0,0 +1,33 @@
+package util
+
+import (
+ "os"
+ "runtime/pprof"
+
+ "github.com/chrislusf/seaweedfs/weed/glog"
+)
+
+func SetupProfiling(cpuProfile, memProfile string) {
+ if cpuProfile != "" {
+ f, err := os.Create(cpuProfile)
+ if err != nil {
+ glog.Fatal(err)
+ }
+ pprof.StartCPUProfile(f)
+ defer pprof.StopCPUProfile()
+ OnInterrupt(func() {
+ pprof.StopCPUProfile()
+ })
+ }
+ if memProfile != "" {
+ f, err := os.Create(memProfile)
+ if err != nil {
+ glog.Fatal(err)
+ }
+ OnInterrupt(func() {
+ pprof.WriteHeapProfile(f)
+ f.Close()
+ })
+ }
+
+}