我正在尝试使用gprof来对我编写的C++应用程序进行性能分析,但我无法弄清楚如何下载和安装它。我已经谷歌了所有我能想到的关键词,甚至没有找到一个下载链接。请有人帮忙!
我试图使用 gprof 对我编写的 C++ 应用程序进行性能分析,但是我不知道该如何下载和安装它。我已经搜索了所有可能的关键词,但仍然找不到下载链接。请有人帮帮我!我正在尝试使用gprof来对我编写的C++应用程序进行性能分析,但我无法弄清楚如何下载和安装它。我已经谷歌了所有我能想到的关键词,甚至没有找到一个下载链接。请有人帮忙!
我试图使用 gprof 对我编写的 C++ 应用程序进行性能分析,但是我不知道该如何下载和安装它。我已经搜索了所有可能的关键词,但仍然找不到下载链接。请有人帮帮我!看起来gprof有两个组成部分。一个是GCC编译器本身的一部分,通过使用 -pg 参数调用。另一个是gprof命令,显然是GNU binutils的一部分。我会让你自己想办法在OSX上安装GCC和binutils...
我没有找到适用于MacOS的gprof
解决方案,而gcov
对我也不起作用,但是gperftools
(Google性能工具)可以使用。以下是在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
显然,使用Bash脚本可以非常容易地自动运行程序上的分析器,因为只有一个参数和共享库位置是固定的。以下是一个名为的示例脚本,它正好可以做到这一点,但包括编译并添加了第二个变量,以便您可以使用不同名称编译<.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
g++-7
行即可轻松实现。gv
。 - Adam Ericksonbrew install gperftools
。 - Matt Eding由于 gprof 目前不能在 macOS 上使用,因此请使用 Google Performance Tools,现在称为 gperftools。
如果已安装 gcc,则 gcov 可以“开箱即用”。
$ gcc -fprofile-arcs -ftest-coverage your_program.c
$ a.out
$ gcov your_program.c
your_program.c
存在于运行gcov
的不同文件夹中,它将无法工作。您必须将your_program.gcno
传递给gcov
才能正常工作。 - Hamid Rouhani
mv $(type gcc) $(type gcc)-apple && brew install gcc && brew install binutils
。 - thepiercingarrow