go的profile工具

本文阅读 2 分钟
首页 golang 正文

题目序号:860

题目来源:小米

频次:

答案1:(J_r_白)

pprof分为采样和分析两个阶段。

采样分为:堆内存采样,协程栈样本手机,CPU样本等。

采样结束后,所有pprof的样本数据最后都会以Protocol Buffers格式序列化数据并通过gzip压缩后写入文件。用户获取该文件后最终将使用go tool pprof对样本文件进行解析。go tool pprof将文件解码并还原为Protocol Buffers格式。

Profile代表一系列样本的集合,主要包含样本类型、样本数组Sample,以及表示函数、行号、文件名等调试信息的Location字段。每个Sample样本都对应一个Location id数组,每个Location id对应一个函数可以避免记录重复的信息。value是一个数组,代表调用链上函数对应的值,该值和样本的类型有关,例如CPU样本是持续时间,而内存样本是内存的大小。

pprof的重要功能是统计搜集到的样本,包括flat与cum这两个重要的指标,

除此之外,还能够以图的形式表示函数的调用链,相同的函数是图中同一个节点,图中的调用关系由两部分决定——父函数和子函数,其中箭头的方向表示父函数调用子函数。核心逻辑可以在newGraph函数中查看

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论