为了账号安全,请及时绑定邮箱和手机立即绑定

解释 pprof 堆图

解释 pprof 堆图

Go
宝慕林4294392 2021-12-20 15:51:39
当我使用 pprof 分析堆时,我得到以下信息:但是,我不清楚如何解释该可视化。特别是:“箭头旁边的内存表示_____,盒子里面的内存表示______。所以当一个盒子有多个箭头时,它意味着_____,当它有多个箭头时,它意味着_____”。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

  1. 此函数(包括其所有子函数)的感知累积内存消耗

  2. 此函数的感知内存消耗(不包括其所有子函数)

  3. 它调用多个子函数

  4. 多个函数调用它

堆和 CPU 分析模式之间箭头的含义没有区别。

您可能对toppprof 命令的输出感兴趣,它可以为您提供以下形式的结果:

9701.61kB of 9701.61kB total (  100%) Dropped 112 nodes (cum <=

48.51kB) Showing top 10 nodes out of 29 (cum >= 3611.54kB)

      flat  flat%   sum%        cum   cum%

 4549.72kB 46.90% 46.90%  4549.72kB 46.90%  mystery.function

 2587.52kB 26.67% 73.57%  2587.52kB 26.67%  reflect.unsafe_NewArray

 1024.02kB 10.56% 84.12%  1024.02kB 10.56%  encoding/xml.copyValue

     514kB  5.30% 89.42%      514kB  5.30%  compress/gzip.NewReader

     514kB  5.30% 94.72%      514kB  5.30%  net/http.(*Transport).dialConn

  512.34kB  5.28%   100%   512.34kB  5.28%  runtime.makeslice

         0     0%   100%      514kB  5.30%  bytes.(*Buffer).ReadFrom

         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).Decode

         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).DecodeElement

         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).unmarshal

这是(恕我直言)使用 pprof 进行 Go 堆分析的两个最佳参考:


https://google-perftools.googlecode.com/svn/trunk/doc/heapprofile.html

https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号