Как установить gprof на OS X

Я пытаюсь использовать gprof для профилирования написанного мною приложения на С ++, но пока не могу понять, как его скачать и установить. Я погуглил все, что могу придумать и даже не могу найти ссылку для скачивания. Кто-нибудь, пожалуйста, помогите!

12

Решение

Кажется, в gprof есть два компонента. Один из них является частью самого компилятора GCC, который вызывается с помощью аргумента -pg. Другой является команда gprof, которая по-видимому является частью GNU binutils. Я оставлю это вам, чтобы выяснить, как установить GCC и binutils на OSX …

9

Другие решения

Так как gprof не работает на OS X в настоящее время, используйте Инструменты Google Performance, теперь известный как gperftools.

Также gcov работает «из коробки», если у вас установлен gcc.

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

Я не нашел решение MacOS для gprof а также 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 Вот. Наконец, откройте program_name.pdf файл в программе просмотра PDF, такой как Preview, чтобы насладиться модными 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

Вы можете разделить этапы компиляции и профилирования, что достаточно легко сделать, удалив g++-7 строка в сценарии оболочки.

1
По вопросам рекламы [email protected]