Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Инструменты разработчика _ Утечка памяти

Автор: ht1515 25.12.2014, 17:39

Какие в Qt средства есть?
И как вы боретесь с утечкой памяти?

Автор: FireBlack 25.12.2014, 19:38

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

Под Linux'у есть профайлер http://valgrind.org/, используя который можно прямо в QtCreator'е смотреть результаты.

Автор: ht1515 26.12.2014, 20:02

ой забыл сказать что под виндой сижу)
Больше ваш опыт важно услышать, инструменты нагуглить можно... просто ваши впечатления от работы с той или иной прогой поиска утечек.

Автор: Iron Bug 27.12.2014, 0:10

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

Автор: ht1515 16.1.2015, 17:55

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

Iron Bug, только я не совсем понял... У меня ПО написано с использованием Qt. Если я начну работать с этим пакетом ПО, что вы описали у меня не будет проблем с настройками, несовместимостями...
Извините за невежество. Просто им реально можно без лишних мучений (установить, запустить) тестировать, анализировать софт написанный на qt?

Автор: Iron Bug 16.1.2015, 23:03

Qt - это лишь библиотека. интелловские отладчики работают с MSVC(я подозреваю, что если автор вопроса не пишет про компилятор, то это MSVC, это режим чтения мыслей на расстоянии, хотя он иногда не работает :) ). я отлаживала так свои библиотеки, но вот насчёт отладки Qt точно сказать не могу. теоретически должно сработать. проще всего установить всё, попробовать собрать простой проект и поотлаживать.
сразу скажу, что поиск утечек и профилирование, особенно в больших программах и там, где много библиотек - задача не для начинающего. и совсем без проблем не обойдётся. это уже не детсадовское программирование. и да, для отладки больших проектов нужно очень много памяти. может оказаться, что для запуска такого инструмента потребуется гораздо больше памяти, чем обычно ест сама программа и студия.

Автор: ht1515 17.1.2015, 13:17

MSVC не использую... У меня по умолчанию gcc и mingw всегда...

Автор: Iron Bug 18.1.2015, 11:35

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

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)