本博客详细介绍了如何使用 pprof 运行 CPU 配置文件。在进行分析时,类似的函数main
可能会从样本中消失,因为 pprof 会将样本截断到底部的 100 个堆栈帧。这是记录在案的:
实际上 main.FindLoops 和 main.main 的总和应该是 100%,但是每个堆栈样本只包括底部的 100 个堆栈帧;在大约四分之一的样本中,递归 main.DFS 函数比 main.main 深 100 多帧,因此完整的跟踪被截断。
问题是我有一个我想要分析的特定功能。采样器报告它出现的概率大约为 5%,但我知道这并不准确。由于截断,它在堆栈上的帧一定已经丢失。
有没有办法可以分析特定函数并且永远不会从堆栈帧示例中截断它?我想知道它的真实 CPU 配置文件 100%。