crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Утечка памяти
ht1515
  опции профиля:
сообщение 25.12.2014, 17:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 14.4.2012
Пользователь №: 3324

Спасибо сказали: 0 раз(а)




Репутация:   0  


Какие в Qt средства есть?
И как вы боретесь с утечкой памяти?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
FireBlack
  опции профиля:
сообщение 25.12.2014, 19:38
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 17.10.2010
Из: г.Пенза
Пользователь №: 2121

Спасибо сказали: 13 раз(а)




Репутация:   1  


Цитата(ht1515 @ 25.12.2014, 17:39) *
Какие в Qt средства есть?
И как вы боретесь с утечкой памяти?

Под Linux'у есть профайлер Valgrind, используя который можно прямо в QtCreator'е смотреть результаты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ht1515
  опции профиля:
сообщение 26.12.2014, 20:02
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 14.4.2012
Пользователь №: 3324

Спасибо сказали: 0 раз(а)




Репутация:   0  


ой забыл сказать что под виндой сижу)
Больше ваш опыт важно услышать, инструменты нагуглить можно... просто ваши впечатления от работы с той или иной прогой поиска утечек.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 27.12.2014, 0:10
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1555
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 211 раз(а)




Репутация:   12  


под вендой - интелловские утилиты для отладки Intel Parallel Studio. они интегрируются в студию. естественно, небесплатные (но кого в нашей стране и под вендой этот вопрос волнует?). это самые лучшие утилиты для поиска утечек, конфликтов, дедлоков, узких мест и для исследования возможностей для оптимизации.
но инструменты - это лишь средство для тех, кто знает, что делает, и как ими пользоваться. а утечка памяти - грубая ошибка программирования. поэтому лучше всего сначала хорошо изучить и понять основы С++, прежде чем кидаться к использованию мощных инструментов отладки. если дать новичку острый топор - он им только ногу себе отрубить может, вместо работы хорошим инструментом :) поэтому я всегда призываю понимать то, что человек пишет. а уже потом пытаться применять инструменты отладки. бывают случаи, когда они нужны. когда в мегатоннах кода закралась мелкая ошибка. но когда это утилита в пару килобайт - это не тот случай, чтобы из пушки палить по воробьям.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ht1515
  опции профиля:
сообщение 16.1.2015, 17:55
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 14.4.2012
Пользователь №: 3324

Спасибо сказали: 0 раз(а)




Репутация:   0  


Iron Bug, мне надо это на будущее, софт еще не дописал. когда все допишу и буду уверен, что все гуд работает, буду тестить сторонними ПО.
Спасибо, что рассказали... Я тоже сторонник того, чтобы внимательно и аккуратно код писать, но не всегда нам это дают сделать. А хорошая программа, даже простая может писаться очень долго...
Это как дом строить...

Iron Bug, только я не совсем понял... У меня ПО написано с использованием Qt. Если я начну работать с этим пакетом ПО, что вы описали у меня не будет проблем с настройками, несовместимостями...
Извините за невежество. Просто им реально можно без лишних мучений (установить, запустить) тестировать, анализировать софт написанный на qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 16.1.2015, 23:03
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1555
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 211 раз(а)




Репутация:   12  


Qt - это лишь библиотека. интелловские отладчики работают с MSVC(я подозреваю, что если автор вопроса не пишет про компилятор, то это MSVC, это режим чтения мыслей на расстоянии, хотя он иногда не работает :) ). я отлаживала так свои библиотеки, но вот насчёт отладки Qt точно сказать не могу. теоретически должно сработать. проще всего установить всё, попробовать собрать простой проект и поотлаживать.
сразу скажу, что поиск утечек и профилирование, особенно в больших программах и там, где много библиотек - задача не для начинающего. и совсем без проблем не обойдётся. это уже не детсадовское программирование. и да, для отладки больших проектов нужно очень много памяти. может оказаться, что для запуска такого инструмента потребуется гораздо больше памяти, чем обычно ест сама программа и студия.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ht1515
  опции профиля:
сообщение 17.1.2015, 13:17
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 29
Регистрация: 14.4.2012
Пользователь №: 3324

Спасибо сказали: 0 раз(а)




Репутация:   0  


MSVC не использую... У меня по умолчанию gcc и mingw всегда...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 18.1.2015, 11:35
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1555
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 211 раз(а)




Репутация:   12  


ну, тогда интелловские утилиты не будут работать. они работают с ICC (кстати, он почти совместим в GCC и это самый крутой компилятор, который я когда-либо видела в природе) и поддерживают работу с MSVC. под MinGW особо продвинутых высокоуровневых средств отладки не существует.
в большой программе проще логически найти ошибку, чем пытаться действовать через отладчики. главным образом потому, что действительно большую программу просто не запустить под отладкой - памяти может не хватить. к тому же отладка, профилирование и поиск узких мест и утечек почти всегда изменяют скоростные характеристики софта и баги могут даже исчезнуть. в больших проектах лучше всего использовать юнит-тесты (какие больше нравятся) и отлаживать каждую библиотеку отдельно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.1.2018, 11:55