首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >golang no /debug/pprof/profile endpoint for cpu,同时拥有其他一切

golang no /debug/pprof/profile endpoint for cpu,同时拥有其他一切
EN

Stack Overflow用户
提问于 2017-05-19 16:51:25
回答 2查看 1.3K关注 0票数 0

我很困惑一个问题,我不能分析我的golang程序,我在/debug/pprof下有所有其他端点,但不在/debug/pprof/profile下用于CPU分析有没有人遇到过这样的问题?

代码语言:javascript
复制
go tool pprof http://localhost:7778/debug/pprof/profile
Fetching profile from http://localhost:7778/debug/pprof/profile
Please wait... (30s)
server response: 404 Not Found

代码语言:javascript
复制
/debug/pprof/

profiles:
19  block
31  goroutine
10  heap
0   mutex
11  threadcreate

full goroutine stack dump

我是这样设置性能分析的

代码语言:javascript
复制
r := http.NewServeMux()
r.Handle("/debug/pprof/", http.HandlerFunc(pprof.Index))

可能的原因是什么?

更新:运行

代码语言:javascript
复制
http.ListenAndServe("localhost:4444", nil)

(即启动默认http服务器)修复了我的自定义终结点的问题

EN

回答 2

Stack Overflow用户

发布于 2017-05-19 17:09:28

找到了,我没有把所有的处理程序都注册为在init here https://golang.org/src/net/http/pprof/pprof.go中完成的

票数 1
EN

Stack Overflow用户

发布于 2018-12-13 15:38:59

我犯了和你一样的错误,我已经根据文档进行了注册。为了防止任何人遇到同样的问题,您需要添加http.DefaultServeMux,因此完整的代码行应该是:

r := mux.NewRouter() r.HandleFunc("/debug/pprof/",pprof.Index) r.HandleFunc("/debug/pprof/cmdline",pprof.Cmdline) r.HandleFunc(“/debug/pprof/:=”,pprof.Profile) r.HandleFunc(“/debug/pprof/mux.NewRouter”,pprof.Symbol) r.HandleFunc(“/debug/pprof/pprof.Index”,pprof.Trace)

引用为here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44065511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档