Утечка памяти |
Здравствуйте, гость ( Вход | Регистрация )
Утечка памяти |
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 |
Какие в 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
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 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
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 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
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
ну, тогда интелловские утилиты не будут работать. они работают с ICC (кстати, он почти совместим в GCC и это самый крутой компилятор, который я когда-либо видела в природе) и поддерживают работу с MSVC. под MinGW особо продвинутых высокоуровневых средств отладки не существует.
в большой программе проще логически найти ошибку, чем пытаться действовать через отладчики. главным образом потому, что действительно большую программу просто не запустить под отладкой - памяти может не хватить. к тому же отладка, профилирование и поиск узких мест и утечек почти всегда изменяют скоростные характеристики софта и баги могут даже исчезнуть. в больших проектах лучше всего использовать юнит-тесты (какие больше нравятся) и отлаживать каждую библиотеку отдельно. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 5:20 |