https://github.com/rakyll/autopprof
Pprof made easy at development time for Go
https://github.com/rakyll/autopprof
Last synced: 12 months ago
JSON representation
Pprof made easy at development time for Go
- Host: GitHub
- URL: https://github.com/rakyll/autopprof
- Owner: rakyll
- License: apache-2.0
- Created: 2018-11-21T23:04:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-23T06:00:38.000Z (over 5 years ago)
- Last Synced: 2025-03-28T16:11:09.689Z (12 months ago)
- Language: Go
- Homepage:
- Size: 15.6 KB
- Stars: 757
- Watchers: 17
- Forks: 35
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- go-awesome - autopprof - 自动分析 pprof (开源类库 / 调试)
- go-awesome - autopprof - automatic profiling pprof (Open source library / Debugging)
README
# autopprof
[](https://pkg.go.dev/github.com/rakyll/autopprof)
Pprof made easy at development time.
## Guide
Add autopprof.Capture to your main function.
```go
import "github.com/rakyll/autopprof"
autopprof.Capture(autopprof.CPUProfile{
Duration: 30 * 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](https://godoc.org/github.com/rakyll/autopprof) 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](https://golang.org/pkg/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](https://golang.org/pkg/runtime/pprof/)
and [net/http/pprof](https://golang.org/pkg/net/http/pprof/) packages.