系统范围的连续linux库分析

时间:2009-04-18 21:32:48

标签: linux profiling

假设我想要分析在系统中的许多应用程序中使用的单个库的使用情况。我只使用统计资料,而不是一个准确的资料(但那也很好)。

我不想做的是使用分析支持重新编译每个正在运行的程序。我希望定期或按需将转发信息转储到某个文件中。如果使用应用程序名称或pids来分解统计数据,那将是非常好的。

现在有没有办法实现这一目标?

示例用法:使用来自正在运行的系统的数据分析glib库。

1 个答案:

答案 0 :(得分:5)

看看oprofile。我认为它完全符合您的要求。

Oprofile使用硬件计数器采样来分析代码,您可以自定义要采样的计数器(例如如果您不想要时间配置文件,您可以在浮点上进行采样指令计数器,并查看代码中执行FP工作最多的部分)。对于时间配置文件,速率为每秒约2000个样本,因此开销非常低。

生成的摘要数据会告诉您应用程序,加载模块和符号(如果您有符号信息),这些信息是您花费大部分时间的地方。您还可以选择单独分析内核和用户空间,如果需要,还可以使用呼叫路径信息。最新版本的oprofile甚至支持分析JITed代码,所以它非常全面。