pprof 多维度聚合

178 阅读1分钟

通常 pprof 展示的时候,以函数为维度进行聚合。

我们支持了更多维度的聚合:

  • packages。以组建库为维度聚合。
  • lines。以行号为粒度聚合。 截屏2023-04-24 下午3.59.05.png

以行号为粒度的聚合,在 top 图中非常有用。

结合 only my code, 我们可以很快的定位到, 自己写的哪一行代码分配了最多的内存。

图中 top 图第一行为灰色,说明是外部组件库代码,可以忽略。

在 perf2pprof.go 文件的 145 行,分配了最多内存。 截屏2023-04-24 下午4.01.36.png

点击 top 图上的这一行,我们可以直接查看对应的代码:

截屏2023-04-24 下午4.03.28.png

当以 packages 为维度聚合的时候。

我们也可以查看,分配最多内存的自己写的 package 的代码:

截屏2023-04-24 下午4.05.17.png

截屏2023-04-24 下午4.05.45.png