繁体   English   中英

您能否使用 perf 分析 function 的单个调用?

[英]Can you profile a single call of a function with perf?

我有一个想要分析的 C++ function 并且只有 function。 一种可能的方法是使用 chrono 并仅测量运行 function 所需的时间并将其打印出来,运行程序几次,然后对样本进行统计。

我想知道我是否可以跳过显式编码时间测量,而只要求 perf 专注于指定 function 所花费的时间。

查看 Google 的基准测试,对感兴趣的 function 进行微基准测试。

然后,您可以像往常一样使用 perf 分析生成的可执行文件。

例如,假设按照基本用法,您生成了一个名为 mybenchmark 的可执行文件。 然后,您可以像往常一样在二进制文件上运行 perf

$ perf stat ./mybenchmark

您可以以 SVG 格式构建整个应用程序的火焰图 使用火焰图,您可以快速查看占用 CPU 大部分时间的 function。 SVG 火焰图是交互式的:您可以单击任何 function 并仅查看所选 function 的详细火焰图。 火焰图的描述

它也是交互式的:将鼠标悬停在 SVG 上以显示细节,然后单击放大。

您可以在示例 bash 火焰图上试用它:

http://www.brendangregg.com/FlameGraphs/cpu-bash-flamegraph.svg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM