我想分析内核中的代码流,以了解瓶颈在哪里。我发现函数分析器对我来说就是这样: 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 列的任何文档,所以我对我的结论犹豫不决。
谢谢!