一、引入依赖
"runtime/pprof"
"github.com/labstack/echo/v4"
二、在main方法中,新启一个协程,启动http接口
go func() {e := echo.New()e.POST("/api/mem", func(c echo.Context) error {log.Info("start export mem")f, err := os.Create("mem.prof")if err != nil {log.Errorf("could not create memory profile: ", err)return err}defer f.Close()if err := pprof.WriteHeapProfile(f); err != nil {log.Errorf("could not write memory profile: ", err)}log.Info("generate mem.prof suncces")return c.JSON(200, struct {OK bool}{OK: true})})err = e.Start(":9889")}()
三、调用接口,生成prof文件后,下载到本地,然后本地启动http页面,观察内存分布
go tool pprof -http=:9090 ./mem.prof