diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-12-16 13:31:37 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-12-25 10:12:41 +0100 |
| commit | 257f4cb9050d29a38a992b814bd6e79e6f1bca99 (patch) | |
| tree | 4f52317a4eb614821de2b930282e03d9f117535d /pkg/cmdprof | |
| parent | 3bcdec13657598f6a6163c7ddecff58c2d3a2a71 (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.go | 57 |
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 -} |
