如何在OS X上安装gprof

时间:2014-03-25 01:39:21

标签: c++ install profiling gprof

我正在尝试使用gprof来编写我编写的c ++应用程序,但我无法弄清楚如何下载和安装它。我用谷歌搜索了我能想到的一切,甚至找不到下载链接。有人请帮忙!

3 个答案:

答案 0 :(得分:9)

gprof似乎有两个组成部分。一个是GCC编译器本身的一部分,使用-pg参数调用。另一个是gprof命令,apparently是GNU binutils的一部分。我将留给您了解如何在OSX上安装GCC和binutils ......

答案 1 :(得分:3)

由于gprof目前无法在OS X上运行,因此请使用Google Performance Tools,现在称为gperftools

同样gcov可以正常使用#34;开箱即用"如果你安装了gcc。

$ gcc -fprofile-arcs -ftest-coverage your_program.c
$ a.out
$ gcov your_program.c

答案 2 :(得分:2)

我找不到gprof的MacOS解决方案而gcov对我不起作用,但gperftools(Google Performance Tools)确实有用。以下是如何在MacOS上安装它们:

brew install google-perftools graphviz ghostscript gv
brew link --overwrite ghostscript

接下来,在程序上运行探查器:

CPUPROFILE=program_name.prof DYLD_INSERT_LIBRARIES=/usr/local/Cellar/gperftools/2.6.3/lib/libprofiler.dylib ./program_name
pprof --pdf program_name program_name.prof > program_name.pdf

您可以找到gperftools here的更多选项。最后,打开PDF查看器中的program_name.pdf文件,例如预览,以享受花哨的graphviz输出。

显然,使用Bash脚本可以非常轻松地在程序上运行探查器,因为只有一个program_name参数且共享库位置是常量。下面是一个名为profile.sh的示例脚本,它完全相同,但包括编译并添加第二个变量,以便您可以使用不同的名称编译.cpp个文件:

#!/bin/bash
g++-7 -fopenmp -O3 -o $1 $2.cpp
CPUPROFILE=$1.prof DYLD_INSERT_LIBRARIES=/usr/local/Cellar/gperftools/2.6.3/lib/libprofiler.dylib ./$1
pprof --pdf $1 $1.prof > $1.pdf
echo "Profiling results: $1.pdf"

接下来,修改权限,使其可以从任何文件夹运行:

chmod +x profile.sh

可以从命令行调用脚本,如下所示,自动完成整个过程:

./profile.sh program_name cpp_name

您可能希望将编译和分析步骤分开,这很容易通过删除shell脚本中的g++-7行来完成。