Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2015, 13:52   #1
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
Вопрос CodeBlocks Как запустить профайлер?

Здравствуйте.

Программа сильно тормозит, решил воспользоваться профайлером для поиска критических участков кода. Пишу в CodeBlocks, в нём присутствует GNU Profiler (gprof).

В Compiler Flags подключаю [-pg] http://ipic.su/img/img7/fs/1.1443090993.png

Компилирую программу, создаю файл gmon.out, запускаю Plugins -> code prifiler, появляется http://ipic.su/img/img7/fs/2.1443091163.png

Жму Да. Выводит результаты. Поля Flat Profile и Call Graph - пустые. А в третьем поле http://ipic.su/img/img7/fs/3.1443091420.png

То есть он говорит что файл gmon.out слишком мал чтобы быть файлом gmon. Значит его нужно создавать не вручную, как создал я, а как-то по другому. Сам он ни после компиляции, ни после запуска программы не создается. Подскажите как правильно настроить и запустить профайлер.

Спасибо за внимание.
gunsoy вне форума Ответить с цитированием
Старый 24.09.2015, 15:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А как вы его создаете? Вообще-то его программа сама создает и записывает метрики выполнения...
p51x вне форума Ответить с цитированием
Старый 24.09.2015, 16:06   #3
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Цитата:
А как вы его создаете? Вообще-то его программа сама создает и записывает метрики выполнения...
После того как программа сама его не создала, я создал пустой файл и присвоил ему имя gmon.out вручную.
gunsoy вне форума Ответить с цитированием
Старый 24.09.2015, 19:11   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Может вы и метрики сами туда запишите? Скомпилили с флагами, запустили вашу прогу, погоняли и вышли из нее.
p51x вне форума Ответить с цитированием
Старый 25.09.2015, 09:30   #5
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Цитата:
Скомпилили с флагами, запустили вашу прогу, погоняли и вышли из нее.
Я так всё и сделал, но gmon.out не появился=( Вчера часа два создавал проекты, компилировал и запускал программу. И сегодня тоже разок попробовал, а файл не появился.

В общем мне любой Линукс профайлер пойдёт.

Решил попробовать valgrind. Долго копался в интернете в поисках команд профилирования для valgrind. Нашёл и использовал следующую для запуска моей программы SDL2_1

Код:
valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes server/SDL2_1/bin/Debug/SDL2_1
Программа запускается, но тут же прерывается. Внизу в терминале пишет "Убито".
http://ipic.su/img/img7/fs/valgrind.1443099374.png
Убивает по ходу из-за переполнения стека.

Нужно как-то стек увеличивать? Или может быть посоветуете какой-нибудь другой профайлер?

Добавлено через несколько часов
Увеличение стека не помогает. Нужна помощь в запуске профайлера на CodeBlocks.

Последний раз редактировалось gunsoy; 25.09.2015 в 12:07.
gunsoy вне форума Ответить с цитированием
Старый 27.09.2015, 16:13   #6
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Оказывается gprof и valgrind не работают когда программа использует OpenGL. Программа тормозит из-за перегруженности процессора. Нужен профайлер под Ubuntu, для определения функций, которые работают медленее всего.

Скачал VTune, а установить как не понимаю. В файле INSTALL.txt более 300 строк информации по установке, пробежал глазами и закрыл нафиг.
Есть что-нибудь простое в установке?
gunsoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt + CodeBlocks Murashov Qt и кроссплатформенное программирование С/С++ 4 11.11.2012 22:55
Профайлер для Дельфей T_o_l_i_k Общие вопросы Delphi 9 21.03.2011 21:35
WH_JOURNALRECORD. Как получить VirtualCode нажатой кнопки? Или как запустить toAscii только с ScanCode? TwiX Общие вопросы Delphi 7 09.06.2010 23:31
Как запустить приложение делфи в фоновом режиме(как процесс)? Diakon Общие вопросы Delphi 4 16.11.2009 13:06