Function 更好地表示性能数据。过滤功能?

Function 更好地表示性能数据。过滤功能?,function,filter,perf,Function,Filter,Perf,我对函数的说明有一些问题。 有人能告诉我如何得到一个表示,我可以看到哪个函数使用了多少时间 但这些应该只是我的(董事会试点)的功能。 内核调用不应该深化 所以我想看看我的程序中哪一个函数在以后的分析和改进中使用的时间最多 在我的“输出树”中,这已经用(k)和(.)标记。 在flamegraph中是否有用于此的过滤功能,或者是否已经可以过滤性能,以便我只看到程序中的功能 谢谢你的帮助! :)关于忽略内核调用,我建议您在不使用sudo的情况下运行perf,或者在用户空间中只运行周期监视,如以下示例所

我对函数的说明有一些问题。 有人能告诉我如何得到一个表示,我可以看到哪个函数使用了多少时间

但这些应该只是我的(董事会试点)的功能。 内核调用不应该深化

所以我想看看我的程序中哪一个函数在以后的分析和改进中使用的时间最多

在我的“输出树”中,这已经用(k)和(.)标记。 在flamegraph中是否有用于此的过滤功能,或者是否已经可以过滤性能,以便我只看到程序中的功能

谢谢你的帮助!
:)

关于忽略内核调用,我建议您在不使用sudo的情况下运行perf,或者在用户空间中只运行周期监视,如以下示例所示:

perf record -g -e cycles:u ls
查看
perf list
的手册页,了解如何正确使用事件修饰符

编辑


从Linux 4.6开始,按照的建议,您只需将
--all user
选项添加到
perf
命令中,即可收集用户空间中所有选定的事件(默认情况下,甚至为
perf record
选择的事件也是
周期
).

替代
:u
修饰符的方法是
perf record--all user
有效地将其应用于您正在录制的每个事件。如果您有多个事件的列表(就像您通常对
perf stat
所做的那样,这也适用于该列表),则非常方便我尝试了以下方法:perf record-a-g-p PID>perf.data perf script-I perf.data>profile.linux-perf.txt perf record-a-o/root/perf.data-g-p PID在此,我将文件直接加载到我复制的profile.linux-perf.txt文件中。但是我得到一个有(k)和(.)输出的输出。这可以被过滤吗?或者我应该从哪里开始,或者我必须在命令中更改什么,以便只从程序中获取函数?正如@PeterCordes所指出的,尝试将
--all user
选项添加到第一个
perf record
命令中。在哪里--all user必须在perf record-a-g-p PID>perf.data中?@shill:like
perf record--all user-a-g-p PID>perf.data
。作为
perf
record
子命令的一个选项,与您使用的所有其他选项一样。