使用gprof2dot进行性能分析时隐藏功能的长描述

时间:2015-02-10 10:12:16

标签: g++ profiling profiler gprof

我使用gprof2dot来分析我的应用程序:

./gprof2dot.py -f callgrind callgrind.out.x | dot -Tsvg -o output.svg

source

尽管如此,它给了我漂亮的图形分析,每个框中每个功能的名称都很长,远远超过了屏幕尺寸。由于boost库具有很高的模板使用率。只需看看其中一个函数名称:

std::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> > std::ref<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> >(boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>&)

有没有办法去除名称空间和模板甚至函数的参数,使其在图形中看起来更小?

PS。图片非常大,我无法将其转换为png。我不知道您是否可以下载并打开此10MB图像(link)。

1 个答案:

答案 0 :(得分:1)

./ gprof2dot.py有两个相关选项:

-s, --strip           strip function parameters, template parameters, and
                      const modifiers from demangled C++ function names
-w, --wrap            wrap function names

我个人更喜欢-w,因为我仍然可以分开模板。