Linux上的挂载时间分析

san*_*g3r 9 profiling strace systemtap

我有一个应用程序,我想知道在各种活动中花了多少时间.由于这个应用程序是I/O密集型的,我想得到一个报告,总结每个库/系统调用(挂起时间)花费了多少时间.

我尝试过oprofile,但似乎它给出了Unhalted CPU周期的时间(那就是cputime,而不是实时)

我已经尝试了strace -T,它给出了墙上的时间,但是生成的数据很大并且很难获得摘要报告(并且存在awk/py脚本?)

现在我正在寻找SystemTap,但我找不到任何足够接近且可以修改的脚本,现场教程也没有多大帮助.我不确定我能找到的是什么.

我需要有人指出我正确的方向.非常感谢!

Nic*_*lay 5

这个提交来看,最近发布的 strace 4.9支持这一点:

strace -w -c
Run Code Online (Sandbox Code Playgroud)

他们称之为“系统调用延迟”(仅从联机帮助页中很难看出这是什么-w)。


Mik*_*vey 1

您这样做只是出于对测量的好奇心,还是因为您想找到可以修复的时间消耗以使其运行得更快?

如果您的目标是使其运行得尽可能快,那么请尝试随机暂停。除了非常粗略地测量之外,它不测量任何东西。这可能是违反直觉的,但它所做的是精确定位将导致最大加速的代码。