Название: Утечка памяти QImage: out of memory, returning null image Отправлено: randir от Июнь 09, 2016, 12:12 Всем привет. Сразу скажу я не программист и тем более не программировал на QT (имею только поверхностные знания)
Но так случилось что приходится разбираться с чужим кодом. В приложении работает слайдер и через какое то время выскакивает ошибка. Понятно что это из-за утечки памяти происходит, но не понятно как это исправить Вот часть кода отвечающая за слайдер. Может кто сможет подсказать как исправить утечку. Был бы крайне благодарен. Код: //загрузим все слайды Название: Re: Утечка памяти QImage: out of memory, returning null image Отправлено: gil9red от Июнь 09, 2016, 12:57 А с чего вы решили, что проблема с утечкой?
В указанном куске кода добавьте в каждую строку логирование: qDebug() << 1; qDebug() << 2; и т.п. И смотрите какой лог не появился в консоли при падении программы, так вы узнаете в какой строке падает. Плюс, можно запустить под отладчиком. Удобнее всего вам будет запускать в IDE -- в ней консоль всегда есть. Еще вы сказали, что падает через некоторое время, а в указанном коде вы только задаете список картинок и запускаете таймер, который похоже и переключает их, поэтому проблема должна возникнуть в методе: slot_tm(). Непонятно также какого типа переменная view Загружаемые картинки какого размера? Какая версия Qt? Название: Re: Утечка памяти QImage: out of memory, returning null image Отправлено: randir от Июнь 09, 2016, 13:02 В диспетчере задач увидел что память постепенно забивается. Ну и в режиме отладки ошибка выскакивает.
Размеры картинок разные.. пробовал маленькие грузить но это проблемы не решает, просто дольше чуть память забивается. Версия QT на котором собиралось 5.3.1 Приложение использует Qtwebkit и я так понимаю в 5.6 уже вебкита нет. Пробую сейчас 5.5.1 Я пробывал таймер убирать. но все равно память постепенно накапливается.. Помогало только если вообще ни каких картинок в папке нет.. тогда ничего не копится. Название: Re: Утечка памяти QImage: out of memory, returning null image Отправлено: gil9red от Июнь 09, 2016, 13:14 Еще вы сказали, что падает через некоторое время, а в указанном коде вы только задаете список картинок и запускаете таймер, который похоже и переключает их, поэтому проблема должна возникнуть в методе: slot_tm(). Непонятно также какого типа переменная view Название: Re: Утечка памяти QImage: out of memory, returning null image Отправлено: Igors от Июнь 09, 2016, 13:19 Похоже на утечку, но не в приведенном месте. Возможно где-то view пере-создается, но не удаляется. Хорошее средство - использовать QImage (вместо QImage *) для типа view
Название: Re: Утечка памяти QImage: out of memory, returning null image Отправлено: randir от Июнь 09, 2016, 13:25 Всем спасибо. Но вроде нашел решение. До этого собирал сборку на 5.3.1
Сейчас поставил 5.5.1 Вроде теперь утечек нет. |