профайлер в Qt
От: Аноним  
Дата: 06.08.09 06:56
Оценка:
Здравствуйте.
Мне понадобилось запустить прогу в Qt под профайлером, чтобы найти места потери производительности, решил использовать gprof входящий в состав minGW, и круто обломался. В файле проекта есть возможность задать компилятору флаг -pg через QMAKE_CXXFLAGS_DEBUG, судя по выводу компилятора, этот флаг до него успешно доходит, но линковщик ругается "undefined reference to mcount". Я так понимаю, во всем виновата система метакомпиляции, хотя,
Кому-нибудь удавалось попрофайлить Qt-шное приложение? Если да, то какой танец с бубном плясать, какой взять бубен, и что курить?
Заранее спасибо
Re: профайлер в Qt
От: sluge  
Дата: 06.08.09 12:30
Оценка:
Qt приложение ничем не отличается от любого другого.
если ты работаешь через makefile-прямо там пропиши нужные опции в переменых CFLAGS и CXXFLAGS и выполни команды make clean;make
Re[2]: профайлер в Qt
От: Аноним  
Дата: 07.08.09 06:34
Оценка:
Здравствуйте, sluge, Вы писали:

S>Qt приложение ничем не отличается от любого другого.

S>если ты работаешь через makefile-прямо там пропиши нужные опции в переменых CFLAGS и CXXFLAGS и выполни команды make clean;make

Если бы не одно "но": makefile в Creator'е автоматически генерируется при каждой пересборке, потому что всем рулит qmake. Попытка запустить makefile помимо Creator'а ручками провалилась, потому что.... Если б я еще знал, почему она провалилась! Ничего толкового, кроме слов "чё-то он там не находит" я сказать сейчас не могу.

Самое же главное, что в конце концов я нашел (кажется) причину, почему gprof не хочет работать с Qt. На соответствующих форумах подсказали, что для работы с gprof необходимо, чтобы библиотеки Qt линковались статически (по умолчанию приложение использует dll'ки), а добиться этого можно только пересобрав Qt с соответствующими ключами. Радости-то!

Может, есть более простой способ запрофайлить Qt'шное приложение?
Re[3]: профайлер в Qt
От: Аноним  
Дата: 02.12.09 19:17
Оценка:
А>Может, есть более простой способ запрофайлить Qt'шное приложение?

Performance Validator... тока он платный хотя есть возможность скачать для ознакомления в течение 30 дней. Сам сейчас бьюсь над вопросом как мне мое Qt приложение отпрофилировать...
qt profiler
Re: профайлер в Qt
От: Alexey F  
Дата: 02.12.09 21:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне понадобилось запустить прогу в Qt под профайлером, чтобы найти места потери производительности, решил использовать gprof входящий в состав minGW, и круто обломался. В файле проекта есть возможность задать компилятору флаг -pg через QMAKE_CXXFLAGS_DEBUG, судя по выводу компилятора, этот флаг до него успешно доходит, но линковщик ругается "undefined reference to mcount". Я так понимаю, во всем виновата система метакомпиляции, хотя,


Не с первого раза у меня получилось
Заработало после того, как я добавил следующие строчки в конец pro-файла:
QMAKE_CXXFLAGS_DEBUG += -g3 -pg
LIBS += -pg -lgmon

После запуска бинарника будет создан gmon.out
Re[2]: профайлер в Qt
От: Alexey F  
Дата: 02.12.09 23:59
Оценка: +1
Здравствуйте, Alexey F, Вы писали:

AF>
AF>QMAKE_CXXFLAGS_DEBUG += -g3 -pg
AF>LIBS += -pg -lgmon
AF>


Всё же лучше так:
QMAKE_CXXFLAGS_DEBUG += -g3 -pg
QMAKE_LFLAGS_DEBUG += -pg -lgmon
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.