首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释pprof堆图

解释pprof堆图
EN

Stack Overflow用户
提问于 2016-03-08 15:26:08
回答 1查看 4.4K关注 0票数 7

当我在go和pprof中分析堆时,我得到以下信息:

但是,我不清楚如何解释这种可视化。特别是:

“箭头旁边的内存表示_____,盒子内的内存表示______。因此,当一个盒子有多个箭头时,它就意味着_____,而当它有多个箭头时,它就意味着_____。”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-08 16:24:36

  1. 此函数(包括)所有子函数的可感知累积内存消耗
  2. 此函数的感知内存消耗不包括的所有子函数
  3. 它调用多个子函数
  4. 多个函数称之为

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

您可能对top pprof命令的输出感兴趣,它可以以以下形式给出结果:

代码语言:javascript
复制
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堆分析的两个最佳引用(IMHO):

  1. https://google-perftools.googlecode.com/svn/trunk/doc/heapprofile.html
  2. https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35871365

复制
相关文章

相似问题

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