Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux函数分析器输出_Linux_Profiling_Ftrace - Fatal编程技术网

Linux函数分析器输出

Linux函数分析器输出,linux,profiling,ftrace,Linux,Profiling,Ftrace,我想在内核中分析一个代码流,以了解瓶颈在哪里。我发现function profiler为我做的就是: 不幸的是,我看到的输出对我来说没有意义。 从上面的链接中,函数探查器的输出为: Function Hit Time Avg -------- --- ---- --- schedule 22943 1994458706 us 86931.03 us

我想在内核中分析一个代码流,以了解瓶颈在哪里。我发现function profiler为我做的就是: 不幸的是,我看到的输出对我来说没有意义。 从上面的链接中,函数探查器的输出为:

 Function        Hit        Time              Avg
--------          ---       ----              ---   
schedule         22943    1994458706 us     86931.03 us
其中“Time”是运行期间在此函数内花费的总时间。因此,如果我有调用函数B的函数A,如果我正确理解了输出,那么为函数A测量的“时间”也包括函数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毫秒。这让我认为,可能是“纯”时间花费在了“页面”错误上,这不包括嵌套函数的持续时间

这是正确的吗?我没有找到s^2专栏的任何文档,所以我对我的结论犹豫不决


谢谢大家!

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

标准偏差仍然大于平均值,但事实并非如此