Russian Qt Forum
Ноябрь 24, 2024, 07:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
performance analysis and memory leak tools
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: performance analysis and memory leak tools (Прочитано 32276 раз)
L.Marvell
Гость
Re: performance analysis and memory leak tools
«
Ответ #15 :
Июнь 12, 2006, 19:47 »
Под Линукс -
http://valgrind.org/
(KDevelop умеет с ним работать). Под винду не скажу, т.к. не знаю.
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: performance analysis and memory leak tools
«
Ответ #16 :
Июнь 12, 2006, 23:00 »
Bound Checker под виндоус
но 6 версия туповата, а 7 очень тормозная
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: performance analysis and memory leak tools
«
Ответ #17 :
Июнь 13, 2006, 14:32 »
есть еще прога типа insign++ но я ее так и не заставил работать!
мой путь обычно
собираем VC++
собираем G++ и потом valgrind
потом снова VC++ и потом VTune!
вот код получается достаточно устойчив! при условии что пишешь на QT!
Записан
Winstrol
Гость
Re: performance analysis and memory leak tools
«
Ответ #18 :
Октябрь 10, 2007, 16:20 »
Кто-нибудь пользовался CodeAnalyst для профилирования Qt приложений? Пока даже самый простой тест на QT не получается прикрутить. Примеры из поставки профайлера работают. Никто не в курсе, где грабли могут быть?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: performance analysis and memory leak tools
«
Ответ #19 :
Декабрь 19, 2007, 01:53 »
Кто может подсказать тулзу для определения участков программы имеющие проблемы с производительностью?
Побывал Performance Analysis из пакета Compuware DevPartner for Visual C++ но без успешно. По непонятным причинам она отказываеться работать. Error detection работает нормально.
У кого есть опыт в этом деле - поделитесь. Буду признателен!
Нужна под Линукс или Винду.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
uriel
Гость
Re: performance analysis and memory leak tools
«
Ответ #20 :
Декабрь 19, 2007, 07:21 »
Под Линукс использую две разных программы.
Во-первых, можно воспользоваться стандартными профилирующими средствами GCC. Для этого при компиляции и линковке нужно добавить ключ -pg. Далее, после запуска программы появится файлик gmon.out. Можно, конечно, работать с ним и в консоле, но я предпочитаю KProf. Только открывать там надо не этот файл, а сам бинарник приложения. В итоге получите статистику, в каких функциях проводится больше всего времени (в ms), какие чаще всего вызываются, etc.
Во-вторых, есть набор утилит valgrind, а конкретно callgrind. Для этого запускаем приложение следующим образом: valgrind --tool=callgrind BINARY_FILE. При этом, правда, скорость выполнения программы снижается в 5-10 раз, так как программа выполняется на собственном виртуальном процессоре утилиты, чтобы перехватывать все инструкции. На выходе получите файлик со именем callgrind.out.PID. Его лучше всего просматривать через KCachegrind. Файл содержит полную статистику по количеству процессорных инструкций, выполненных в каждой функции, вплоть до libc.
Программа строит очень удобные графы вызова, позволяет группировать функции по ELF-объектам, классам, исходникам. Если есть отладочная информация, можно даже просматривать конкретные строчки кода. В целом, очень полезная штука.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: performance analysis and memory leak tools
«
Ответ #21 :
Декабрь 19, 2007, 09:57 »
Спасибо за столь развернутый ответ! Буду пробывать!
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: performance analysis and memory leak tools
«
Ответ #22 :
Декабрь 20, 2007, 03:18 »
Заюзал callgrind. Супер! Реально эта тулза мне помогла! Ещё раз большое спасибо, uriel!
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Mikor
Гость
Re: performance analysis and memory leak tools
«
Ответ #23 :
Декабрь 20, 2007, 06:44 »
Всю жизнь использую Intel VTune Performance Analyzer. Весьма им доволен. Раньше были достаточно глючные версии, теперь вроде лучше стало. Есть версии под Linux и Windows. Недавно ознакомился с профилировщиком в Visual C++ 2008 Team, как познакомился, так и решил больше неиспользовать. Слишком не функциональный.
Оффтопик: А вообще, профилировка это очень часто заточка под архитектуру. Гораздо привлекательнее оптимизировать (пересмотреть) сам алгоритм, вряд-ли какая-либо оптимизация будет быстрее. Ну еще сразу разработка алгоритма под SSE дает прирост производительности, но надо либо очень-очень хорошо владеть оптимизацией на ассемблере (прочитав свежий Intel Optimization Manual), либо очень хорошо прочитать доку по компилятору, чтобы указать ему что оптимизировать и дать возможность разобрать логику алгоритма на SSE комманды (хотя-бы до степени векторизации массивов). Т.е. занятие это сложное, аналитическое и, как правило, не благодирное со стороны заказчика. Гораздо дешевле купить проц побыстрее, с большим кол-вом ядер, с более быстрой шиной, мат. плату с современным чипсетом, быструю память... А кому надо всё-таки большие вычислительные можности использовать, советую бросить взгляд в сторону nVidia CUDA (ищем в google).
Записан
vregess
Гость
Re: performance analysis and memory leak tools
«
Ответ #24 :
Декабрь 20, 2007, 07:34 »
Хорошая инфа. Давайте ее в фак засунем. Будет полезно.
Спасибо за информацию!
Записан
uriel
Гость
Re: performance analysis and memory leak tools
«
Ответ #25 :
Декабрь 20, 2007, 09:20 »
Intel VTune Performance Analyzer, насколько я понял, платная программа, а это не так хорошо, как хотелось бы. Valgrind, напротив, Open Source проект, который включает в себя набор утилит для разностороннего профилирования приложений. Единственный недостаток, насколько мне известно, это отсутствие версии под Винду. Но там и своего добра достаточно, опять же, насколько мне известно.
Кроме того, не считаю, что профилирование - суть заточка под конкретную архитектуру. Просто оно позволяет найти слабые места в программе, какие-то куски неэффективного на _любых_ платформах кода. Можно отлавливать также утечки памяти. Ну а в целом, согласен в Вами, что занятие это не всегда благодарное, но тем не менее, иногда очень нужное.
Записан
Mikor
Гость
Re: performance analysis and memory leak tools
«
Ответ #26 :
Декабрь 20, 2007, 17:45 »
Насчет платности VTune небольшой оффтопик.
Как-то подхожу к начальству похвастаться, поставил на ноут все ПО лицензаонное.
- Вот у меня даже OpenOffice стоит, бесплатный лицензионный
- А чем он лучше Microsoft Office?
- Тем что бесплатный!
- А Microsoft Office что? Платный что-ли?? В жизни бы не подумал ))
VTune под Windows есть триал на месяц. За это время его можно и оценить и отказаться и купить и скачать вместе с ключиком. Кому что совесть подскажет...
Из личного опыта скажу, что достаточно соблюдать N простых правил, чтобы не делать типичных ошибок. В статьях Криса Касперски (для тех кто не знает английского) или в книжках Intel описывается какой именно код надо оптимизировать, как надо изначально продумывать алгоритм.
Коль есть сложные алгоритмы, берем Mandelbrot пример, изучаем, пишем аналогичное ) благо проблем с многопотоковостью нет (итак много информации есть в интернете), проблемы с железом Intel и AMD кое-как решили многоядерностью. Дать пользователю время полюбоваться красивым Progress Bar с подписью сколько еще подождать гораздо приятнее, чем он будет тыркать в зависшую на вычислениях программу. Да и реализуется гораздо проще, чем утомительная работа по оптимизации. К тому же, эффект для начальства очевиден, а результаты профилировки до оптимизации и после начальство особо не потрясают.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: performance analysis and memory leak tools
«
Ответ #27 :
Декабрь 20, 2007, 17:59 »
Все верно, но если это не собственный код, а код кустомера? Тогда и в помощь такие утилиты...
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Sergey B.
Программист
Offline
Сообщений: 544
Re: performance analysis and memory leak tools
«
Ответ #28 :
Декабрь 20, 2007, 22:11 »
большое спасибо uriel
Заценил kcachegrind и valgrind --tool=callgrind
Такие вот чувства...
Записан
uriel
Гость
Re: performance analysis and memory leak tools
«
Ответ #29 :
Декабрь 20, 2007, 22:24 »
Да не за что, собственно.
P.S. Чувства знакомые, у самого такое же было.
Но, кстати, несмотря на всю навороченность KCachegrind'а, некоторые вещи он не позволяет заметить. Например, был случай, когда алгоритм работал недостаточно быстро, а callgrind ничего подходящего не находил. Собрал с ключиком -pg, посмотрел в KProf. Оказалось, что куча циклов тратится в деструкторе QList. Объявил переменную статической и в итоге количество циклов, затраченных на программу в целом уменьшилось в два раза.
Записан
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...