mirror of https://github.com/EasyDarwin/EasyDarwin
82 lines
1.8 KiB
Markdown
82 lines
1.8 KiB
Markdown
![]() |
# pprof
|
||
|
|
||
|
[](https://travis-ci.org/gin-contrib/pprof)
|
||
|
[](https://codecov.io/gh/gin-contrib/pprof)
|
||
|
[](https://goreportcard.com/report/github.com/gin-contrib/pprof)
|
||
|
[](https://godoc.org/github.com/gin-contrib/pprof)
|
||
|
[](https://gitter.im/gin-gonic/gin)
|
||
|
|
||
|
gin pprof middleware
|
||
|
|
||
|
> Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
### Start using it
|
||
|
|
||
|
Download and install it:
|
||
|
|
||
|
```bash
|
||
|
$ go get github.com/gin-contrib/pprof
|
||
|
```
|
||
|
|
||
|
Import it in your code:
|
||
|
|
||
|
```go
|
||
|
import "github.com/gin-contrib/pprof"
|
||
|
```
|
||
|
|
||
|
### Example:
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/gin-contrib/pprof"
|
||
|
"github.com/gin-gonic/gin"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
router := gin.Default()
|
||
|
pprof.Register(router)
|
||
|
router.Run(":8080")
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### change default path prefix:
|
||
|
|
||
|
```go
|
||
|
func main() {
|
||
|
router := gin.Default()
|
||
|
// default is "debug/pprof"
|
||
|
pprof.Register(router, "dev/pprof")
|
||
|
router.Run(":8080")
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Use the pprof tool
|
||
|
|
||
|
Then use the pprof tool to look at the heap profile:
|
||
|
|
||
|
```bash
|
||
|
go tool pprof http://localhost:8080/debug/pprof/heap
|
||
|
```
|
||
|
|
||
|
Or to look at a 30-second CPU profile:
|
||
|
|
||
|
```bash
|
||
|
go tool pprof http://localhost:8080/debug/pprof/profile
|
||
|
```
|
||
|
|
||
|
Or to look at the goroutine blocking profile, after calling runtime.SetBlockProfileRate in your program:
|
||
|
|
||
|
```bash
|
||
|
go tool pprof http://localhost:8080/debug/pprof/block
|
||
|
```
|
||
|
|
||
|
Or to collect a 5-second execution trace:
|
||
|
|
||
|
```bash
|
||
|
wget http://localhost:8080/debug/pprof/trace?seconds=5
|
||
|
```
|