【问题标题】:System-wide continuous linux library profiling系统范围内连续的 linux 库分析
【发布时间】:2009-04-18 21:32:47
【问题描述】:

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

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

现在有什么方法可以实现吗?

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

【问题讨论】:

    标签: linux profiling


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了!我知道 oprofile,但从未尝试过以这种方式使用它。仅从我需要的库中过滤符号即可获得所需的数据。
    猜你喜欢
    • 2011-08-05
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2016-08-18
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多