使用golang的pprof包对程序进行性能分析

wongdu2014 · · 794 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

       程序经常出现OOM错误,然后关键字"go pprof"搜到文章<Go程序性能分析pprof>,该文章第二步说运行程序后会生成profile文件,但是编译运行后发现生成的profile文件大小一直为0,然后关键字"go pprof profile is empty"搜到文章<Golang pprof heap profile is empty>,该文章说在运行程序前添加环境变量GODEBUG="memprofilerate=1",但是好像并没有用处。

       然后还是之前的关键字"go pprof"搜到文章<使用golang的pprof包对程序进行性能分析>,该文章指出"在代码中使用pprof了,实际运用中分三种情况",因为程序并非是运行一次就退出,而是作为一个服务,所以"需要开启一个goroutine来开启端口监听",然后参考文章<go内存泄露case>,注意第二步"(2)memory profile"的描述"使用--alloc_space可以显示所有分配的对象",当使用web命令时会报错"Cannot find dot, have you installed Graphviz?",然后关键字"centos Graphviz"搜到文章<Linux Centos7安装配置画图工具Graphviz>,参照该文章安装了Graphviz但是web命令依然会报错"xdg-open: no method available for opening '/tmp/pprof-964683453/pprof001.svg'",不知道为什么就只好把临时的svg文件拷贝到windows下用ie来看,不理解为什么后面curl -T来拷贝时说该文件不存在。

       如果程序代码中没有`import _ "net/http/pprof"`,则执行"go tool pprof  http://localhost:6060/debug/pprof/heap"会报错"server response: 404 Not Found"。关键字"inuse_space"搜到文章<golang 内存分析/动态追踪>

本文来自:博客园

感谢作者:wongdu2014

查看原文:使用golang的pprof包对程序进行性能分析

入群交流(和以上内容无关):加入Go大咖交流群,免费领全套学习资料或添加微信:muxilin131420 备注:入群;或加QQ群:729884609

794 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传