【问题标题】:Linux function profiler outputLinux 函数分析器输出
【发布时间】:2019-01-14 07:24:22
【问题描述】:

我想分析内核中的代码流,以了解瓶颈在哪里。我发现函数分析器就是为我做的: https://lwn.net/Articles/370423/ 不幸的是,我看到的输出对我来说没有意义。 从上面的链接,函数分析器的输出是:

 Function        Hit        Time              Avg
--------          ---       ----              ---   
schedule         22943    1994458706 us     86931.03 us

其中“时间”是运行期间在此函数内花费的总时间。因此,如果我有调用 function_B 的 function_A,如果我正确理解了输出,则为 function_A 测量的“时间”也包括 function_B 的持续时间。

当我在我的电脑上实际运行它时,我看到另一个新列显示为输出:

Function           Hit     Time          Avg          s^2   
--------           ---     ----          ---          ---           
__do_page_fault    3077   477270.5us    155.109 us  148746.9us
(more functions..)

s^2 代表什么?它不能是标准偏差,因为它高于平均水平......

我从用户空间测量了这段代码流的总持续时间,得到了 400 毫秒。总结 s^2 列时,它接近 400 毫秒。这让我觉得这可能是在 __do_page_fault 中花费的“纯”时间,其中不包括嵌套函数的持续时间。

这是正确的吗?我没有找到任何关于 s^2 列的文档,所以我对自己的结论犹豫不决。

谢谢!

【问题讨论】:

    标签: linux profiling ftrace


    【解决方案1】:

    您可以看到计算s^2here 的代码。这似乎是方差(标准差的平方)。如果您从示例中的数字中取出根,您会得到 385 us,这更接近示例中的平均值。

    标准差仍然大于平均值,但那是fine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 2011-02-17
      • 1970-01-01
      • 2018-12-26
      • 2014-01-14
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      相关资源
      最近更新 更多