多核和OProfile

oprofile线程感知/安全(这意味着我可以安全地分析multithreading应用程序),如果是这样,与perf什么区别?

1是的, oprofile是线程感知的。

来自男士的逐字控制( oprofile的控制工具):

–separate = [none,lib,kernel, thread ,cpu,all]

根据给定的分隔符分开样本。 'lib'将每个应​​用程序的动态链接库样本分开。 “内核”将每个应用程序的内核和内核模块样本分开; “内核”意味着“图书馆”。 '线程'给每个线程和任务分离。 每个CPU的“CPU”分开。 “all”意味着所有上述选项,“none”意味着分离。

2 oprofile是系统范围的分析器,它作为守护进程运行,并默认配置所有系统活动。

Oprofile和Perf都是线程感知的,可以分析多线程应用程序。 如果你问他们,他们甚至可以分析内核。

OProfile是一个分析器(一个可以记录和注释的工具)。 它是第一个(如果不是第一个)实际使用硬件性能计数器的分析器。

Perf是一套分析工具,可帮助您了解应用程序(stat,top,record,annotate等)的情况。 它是Linux内核项目的一部分(尽管这些工具在用户空间中工作)。 目前仍处于积极的发展阶段,从我听到的情况来看API时有发生巨大变化。