如何在OS X上安装gprof
How to install gprof on OS X
我正在尝试使用gprof来配置我编写的c++应用程序,但我无法弄清楚如何下载和安装它。我用谷歌搜索了我能想到的所有东西,甚至找不到下载链接。谁来帮帮我!
似乎gprof有两个组成部分。一个是GCC编译器本身的一部分,通过使用-pg参数调用。另一个是gprof命令,它显然是GNU binutils的一部分。我将把如何在OSX上安装GCC和binutils留给你去弄清楚…
我没有找到MacOS解决方案的gprof
和gcov
不适合我,但gperftools
(谷歌性能工具)做的工作。下面是如何在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
的更多选项。最后,在PDF查看器(如Preview)中打开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
行来实现。
由于gprof目前不能在OS X上工作,请使用Google性能工具,现在称为gperftools。
如果你安装了gcc, gcov也可以"开箱即用"。
$ gcc -fprofile-arcs -ftest-coverage your_program.c
$ a.out
$ gcov your_program.c
相关文章:
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++:如何在CLion IDE中安装Boost
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 有人安装"IITB Simplecpp in mac"吗?
- 我可以在 Arduino 的库文件夹之外安装库吗?
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- 安装 libc++ 时出现问题
- 安装MinGW后C++编译器不起作用?
- 介子复制/安装头文件到输出目录并保持文件夹结构
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 检查是否安装了 windows10 C++
- 安装 psutil 和为 pypy 配置期间出错
- 如何在 Debian 10 上安装 CPP 手册页?
- 如何更改使用 CPack 安装的可执行文件的名称?
- 使用 MinGW 在 Windows 上安装 GMP 时出错
- 如何在OS X上安装gprof