![](/img/trans.png)
[英]Profiling my program with linux perf and different call graph modes gives different results
[英]profiling linux application with perf record
我一直在尝试通过在perf record上关注这篇文章来分析Linux中的C ++应用程序。 我的理解是,我需要做的是运行性能perf record program [program_options]
,其中program
是程序可执行文件,而[program options]
是我想要传递给程序的参数。 但是,当我尝试像这样配置我的应用程序时:
perf record ./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
perf
几乎立即返回报告。 但是,在没有perf的情况下运行./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
大约需要30秒,我想让perf
监视程序的整个执行过程,而不是立即返回。 为何perf
回报如此之快? 如何考虑程序的整个运行过程?
您的命令似乎没问题。 尝试在/proc/sys/kernel/perf_event_paranoid
更改偏执级别。 将此参数设置为-1(作为root用户)应该可以解决权限问题:
echo "-1" > /proc/sys/kernel/perf_event_paranoid
您也可以尝试使用perf record
设置要监视的事件。 默认事件是cycles
(如果支持)。 检查man perf-list
。
尝试命令:
perf record -e cycles ./csvJsonTransducer -enable-AVX-deletion test.csv testout.json
强制监视周期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.