繁体   English   中英

用性能记录分析linux应用程序

[英]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.

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