这篇文章介绍了如何使用Gin pprof进行Go语言的性能分析。首先,通过导入github.com/DeanThompson/ginpprof包并使用ginpprof.Wrapper(router)将其集成到gin框架中。然后,通过命令行工具go tool pprof获取和分析程序的性能数据。文章还提供了如何使用top命令查看当前内存使用情况,并建议定期使用此命令以检测是否存在内存持续增长的情况。最后,文章提供了两个参考链接,供读者深入学习。
pprof
// 导入包
import (
"github.com/DeanThompson/ginpprof"
)
// gin框架直接集成
router := gin.New()
ginpprof.Wrapper(router)
命令行分析
$ go tool pprof http://localhost:6060/debug/pprof/heap
Fetching profile over HTTP from http://localhost:6060/debug/pprof/heap
Saved profile in /Users/root/pprof/pprof.alloc_objects.alloc_space.inuse_objects.inuse_space.008.pb.gz
Type: inuse_space
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top10
(pprof) topShowing nodes accounting for 837.48MB, 100% of 837.48MB total flat flat% sum% cum cum% 837.48MB 100% 100% 837.48MB 100% main.main.func1
top
命令查看当前内存使用情况
隔段时间继续使用此命令查看看是否有内存持续增长的数据。
参考
https://segmentfault.com/a/1190000016412013
https://eddycjy.gitbook.io/golang/di-9-ke-gong-ju/go-tool-pprof#qian-yan