summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/pkg/profile/example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pkg/profile/example_test.go')
-rw-r--r--vendor/github.com/pkg/profile/example_test.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/github.com/pkg/profile/example_test.go b/vendor/github.com/pkg/profile/example_test.go
new file mode 100644
index 0000000..98a54b5
--- /dev/null
+++ b/vendor/github.com/pkg/profile/example_test.go
@@ -0,0 +1,58 @@
+package profile_test
+
+import (
+ "flag"
+ "os"
+
+ "github.com/pkg/profile"
+)
+
+func ExampleStart() {
+ // start a simple CPU profile and register
+ // a defer to Stop (flush) the profiling data.
+ defer profile.Start().Stop()
+}
+
+func ExampleCPUProfile() {
+ // CPU profiling is the default profiling mode, but you can specify it
+ // explicitly for completeness.
+ defer profile.Start(profile.CPUProfile).Stop()
+}
+
+func ExampleMemProfile() {
+ // use memory profiling, rather than the default cpu profiling.
+ defer profile.Start(profile.MemProfile).Stop()
+}
+
+func ExampleMemProfileRate() {
+ // use memory profiling with custom rate.
+ defer profile.Start(profile.MemProfileRate(2048)).Stop()
+}
+
+func ExampleProfilePath() {
+ // set the location that the profile will be written to
+ defer profile.Start(profile.ProfilePath(os.Getenv("HOME"))).Stop()
+}
+
+func ExampleNoShutdownHook() {
+ // disable the automatic shutdown hook.
+ defer profile.Start(profile.NoShutdownHook).Stop()
+}
+
+func ExampleStart_withFlags() {
+ // use the flags package to selectively enable profiling.
+ mode := flag.String("profile.mode", "", "enable profiling mode, one of [cpu, mem, mutex, block]")
+ flag.Parse()
+ switch *mode {
+ case "cpu":
+ defer profile.Start(profile.CPUProfile).Stop()
+ case "mem":
+ defer profile.Start(profile.MemProfile).Stop()
+ case "mutex":
+ defer profile.Start(profile.MutexProfile).Stop()
+ case "block":
+ defer profile.Start(profile.BlockProfile).Stop()
+ default:
+ // do nothing
+ }
+}