Russian Qt Forum
Сентябрь 30, 2024, 10:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: performance analysis and memory leak tools  (Прочитано 32069 раз)
ElderOrb
Гость
« : Декабрь 08, 2005, 12:09 »

сабж
Записан
nEoN
Гость
« Ответ #1 : Декабрь 08, 2005, 13:16 »

BoundsChecker 7 for MSVC++.
По его мнению в недрах Qt4 попадаются утечеки и памяти и ресурсов  :?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Декабрь 08, 2005, 13:25 »

Valgrid и BoundChecker только 6 версии
7 медленноват!
Записан
ElderOrb
Гость
« Ответ #3 : Декабрь 08, 2005, 14:55 »

2nEoN:
Цитировать
По его мнению в недрах Qt4 попадаются утечеки и памяти и ресурсов


В том-то и дело.. Я пробовал AQTime, DevPartner и что-то ещё... И всё они плохо работали c Qt (тогда ещё 3-им).

2Admin:
А есть ли Valgrind под винды?
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #4 : Декабрь 08, 2005, 16:17 »

NO only linux kernel!
Записан
SLiDER
Гость
« Ответ #5 : Декабрь 08, 2005, 22:54 »

Под Linux : Valgrind.
Под Windows : в основном Devpartner, но последнее время все реже им  и чаще просто дебагерной версией crt-библиотеки и ручками, за последние несколько лет так насобачился, что никаких детекторов утечек не нужно.

В качестве профайлера для обоих систем, можно порекомендовать Intel VTune.

Что бы Devpartner не ругался на Qt, нужно просто отключить отладку ее dll в настройках етой софины. Там же (в настройках) ее можно и ускорить, за счет упрощенных алгоритмов анализа, но это скажется на качестве отлова утечек.

А вообщето лучший дебагер/профайлер и т.п. это голова. Все читаем лучшую книгу на эту тему : Мэтт Тэллес, Юань Хсих. Наука отладки, или еще : Анн Р. Форд, Тоби Дж. Теори. Практика отладки в C++
Записан
ElderOrb
Гость
« Ответ #6 : Декабрь 09, 2005, 10:40 »

Ок, спасибо за инфу. А может эти книжки у кого в электронном виде есть? ж)
Записан
Вудруф
Гость
« Ответ #7 : Декабрь 09, 2005, 13:06 »

А что из вышеперечисленного работает с MinGW?
Записан
Dendy
Гость
« Ответ #8 : Декабрь 09, 2005, 18:59 »

Visual Studio 2005: _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

А вообще архитектура Qt сделана так, что заработать утечку єто ещё нужно потрудиться Веселый  Практически все new в делаются в конструкторах и пришибаются самой Qt. Единственная сложность на Qt4 - контейнерьl теперь не удаляют данньl не по указателям, что в них хранятся, но єто скорее плюс.
Записан
ElderOrb
Гость
« Ответ #9 : Январь 05, 2006, 15:13 »

Цитата: "Dendy"
Visual Studio 2005: _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );


Насчёт этого вопрос: Допустим я имею вот такую инфу
Код:
Detected memory leaks!
Dumping objects ->
{161} normal block at 0x00F97330, 1 bytes long.
 Data: < > CD
Object dump complete.


А как бы это теперь узнать ещё и строчку, которая порождает утечку?...
Записан
Dendy
Гость
« Ответ #10 : Январь 05, 2006, 16:31 »

А вот ето загадка, которую я не решил. Кто вьІделяет память я узнавал ставя брикпоинт на номер вьІделения памяти (161) в одном из заголовочников. Сейчас даже не вспомню в каком...
Записан
ElderOrb
Гость
« Ответ #11 : Январь 05, 2006, 16:49 »

Вот здесь http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxconenablingmemoryleakdetection.asp написано, что если сделать #define _CRTDBG_MAP_ALLOC, то будет показываться ещё и файл и строчка с утечкой:

Цитировать

With _CRTDBG_MAP_ALLOC defined, the display also shows you the file where the leaked memory was allocated. The number in parentheses following the filename (20, in this example) is the line number within the file.


Однако как я ни бился, желаемого эффекта достичь не удалось...
Записан
Dendy
Гость
« Ответ #12 : Январь 05, 2006, 19:35 »

Цитата: "ElderOrb"
Однако как я ни бился, желаемого эффекта достичь не удалось...


Аннналагична.

А рьІться в тех исходниках как-то желания особого нету.
Записан
yshurik
Гость
« Ответ #13 : Январь 06, 2006, 15:40 »

Valgrind. Правда он показывает некоторые вещи которые висят постоянно с Qt, но их довольно легко отмежевать от твоих собственных leaks.
Записан
pacmanoid
Гость
« Ответ #14 : Июнь 12, 2006, 06:00 »

Необходимо отловить утечки памяти и спрофилировать QT приложение. Так как данное приложение будет работать очень длительное время без перезапуска. Подскажите пожалуста какие средства есть для отлова утечек памяти и какие можно использовать профайлеры? Кто что использует для LINUX и для Windows. И если можно то как?
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.09 секунд. Запросов: 22.