Linux Eclipse CDT профилировщик
Я использую Eclipse CDT под Linux, может ли кто-нибудь порекомендовать хороший профилировщик в этой среде, пожалуйста.
Я также новичок в программировании на С++ и многопоточности, может ли кто-нибудь предложить некоторые советы о том, как выполнять профилирование для многопоточного приложения, например, что искать узким местом производительности и т.д.
Спасибо.
Ответы
Ответ 1
Я не знаю, лучший ли он, но это определенно очевидно: gprof. Вам просто нужно установить переключатели компиляции вправо (включить gprof (-pg) для этого проекта в свойствах проекта → c/С++ build → Settings → Debugging).
Когда вы скомпилировали программу с этими параметрами, вам нужно запустить ее (пока она обычно не выйдет). Это создает файл профиля (gmon.out).
Существует дополнительный плагин, который вы можете установить в eclipse, который визуализирует содержимое gmon.out(перейдите в Help → Install → Linux tools → GProf integration). Просто откройте созданный файл gmon.out, как и любой другой файл, после установки этого плагина.
Ответ 2
Как уже упоминалось в dbrank0, вам нужно установить для этого проекта параметр компиляции (-pg). Перейти к свойствам проекта → c/С++ build → Настройки → С++ компилятор → Отладка и проверка генерировать информацию gpof. Когда вы скомпилируете программу (test_prof.c), вы получите exe файл (в нашем случае test_prof).
$ ls
test_gprof test_gprof.c
и когда вы запустите его, будет создан файл gmon.out, сгенерированный в том же каталоге.
$ ls
gmon.out test_gprof test_gprof.c
Инструмент gprof запускается с именем исполняемого файла и вышеописанным аргументом "gmon.out". Это создает файл анализа, который содержит всю необходимую информацию профилирования.
$ gprof test_gprof gmon.out > analysis.txt
Будет создан файл с именем 'analy.txt, который содержит всю информацию профилига и может быть легко прочитан.
Для более подробной информации смотрите http://www.thegeekstuff.com/2012/08/gprof-tutorial/