aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cmdprof
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-12-16 13:31:37 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-12-25 10:12:41 +0100
commit257f4cb9050d29a38a992b814bd6e79e6f1bca99 (patch)
tree4f52317a4eb614821de2b930282e03d9f117535d /pkg/cmdprof
parent3bcdec13657598f6a6163c7ddecff58c2d3a2a71 (diff)
pkg/cmdprof: merge into pkg/tool
cmdprof functionality seems to fit well into pkg/tool.
Diffstat (limited to 'pkg/cmdprof')
-rw-r--r--pkg/cmdprof/cmdprof.go57
1 files changed, 0 insertions, 57 deletions
diff --git a/pkg/cmdprof/cmdprof.go b/pkg/cmdprof/cmdprof.go
deleted file mode 100644
index ab0396d16..000000000
--- a/pkg/cmdprof/cmdprof.go
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2020 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-// Package cmdprof simplifies cpu/memory profiling for command line tools. Use as:
-// flag.Parse()
-// defer cmdprof.Install()()
-package cmdprof
-
-import (
- "flag"
- "fmt"
- "os"
- "runtime"
- "runtime/pprof"
-)
-
-var (
- flagCPUProfile = flag.String("cpuprofile", "", "write CPU profile to this file")
- flagMEMProfile = flag.String("memprofile", "", "write memory profile to this file")
-)
-
-func Install() func() {
- res := func() {}
- failf := func(msg string, args ...interface{}) {
- fmt.Fprintf(os.Stderr, msg+"\n", args...)
- os.Exit(1)
- }
- if *flagCPUProfile != "" {
- f, err := os.Create(*flagCPUProfile)
- if err != nil {
- failf("failed to create cpuprofile file: %v", err)
- }
- if err := pprof.StartCPUProfile(f); err != nil {
- failf("failed to start cpu profile: %v", err)
- }
- res = func() {
- pprof.StopCPUProfile()
- f.Close()
- }
- }
- if *flagMEMProfile != "" {
- prev := res
- res = func() {
- prev()
- f, err := os.Create(*flagMEMProfile)
- if err != nil {
- failf("failed to create memprofile file: %v", err)
- }
- defer f.Close()
- runtime.GC()
- if err := pprof.WriteHeapProfile(f); err != nil {
- failf("failed to write mem profile: %v", err)
- }
- }
- }
- return res
-}