Pprof made easy at development time for Go
Switch branches/tags
Nothing to show
Clone or download
Latest commit a503efc Nov 26, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples/helloworld Lower the CPU collection time to 5 seconds Nov 25, 2018
CONTRIBUTING.md Add CONTRIBUTING Nov 22, 2018
LICENSE Add more docs Nov 21, 2018
README.md Clarify README Nov 25, 2018
autopprof.go Add missing profiles Nov 25, 2018
example_test.go Add more docs Nov 21, 2018
go.mod Initial commit Nov 21, 2018
go.sum Remove ununsed dependency from go.sum Nov 26, 2018

README.md

autopprof

GoDoc

Pprof made easy at development time.

Guide

Add autopprof.Capture to your main function.

import "github.com/rakyll/autopprof"

autopprof.Capture(autopprof.CPUProfile{
    Duration: 15 * time.Second,
})

Run your program and send SIGQUIT to the process (or CTRL+\ on Mac).

Profile capturing will start. Pprof UI will be started once capture is completed.

See godoc for other profile types.

Why autopprof?

autopprof is a easy-to-setup pprof profile data collection library for development time. It highly depends on the standard library packages such as runtime/pprof and the existing tools such as go tool pprof.

Collecting and visualizing profiling data from Go programs is a multi-step process. First, you need to collect and write the collected data to a file. Then you should use the go tool pprof tool to analyze and visualize.

autopprof makes it easier to collect and start the pprof UI with a one-line configuration. It collects profiles once the process is triggered with a SIGQUIT and starts the pprof UI with the collected data. Since it does signal handling and starting the browser, it is only recommended at development-time.

For production cases, please see the runtime/pprof and net/http/pprof packages.