Название: QPainter drawText и потребление памяти. Отправлено: Ubuntu_linux от Октябрь 30, 2011, 16:47 На QImage пишу текст пейнтером, где-то на страничку А4 текста память утекает на 1 МБ, что делать?
Название: Re: QPainter drawText засервет память? Отправлено: andrew.k от Октябрь 30, 2011, 19:01 что-то у тебя все с памятью проблемы)
Название: Re: QPainter drawText засервет память? Отправлено: Ubuntu_linux от Октябрь 30, 2011, 22:51 что-то у тебя все с памятью проблемы) На мобильных платформах каждый мегабайт на счету!Меняю размер шрифта QFont в пейнтера и меняется результат в памяти, причем чем больше шрифт, тем меньше памяти. ??? Что делать непойму, может во всем виноват QImage? Название: Re: QPainter drawText засерает память? Отправлено: andrew.k от Октябрь 30, 2011, 23:24 Может это нормально?
Интуитивно кажется, что да. Может шрифтовые литералы перед отрисовкой в битмапы преобразуются? Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 00:10 так а куда память уходит?
Название: Re: QPainter drawText засерает память? Отправлено: andrew.k от Октябрь 31, 2011, 00:21 ну вообще да.
Остается смотреть исходники и выяснять. Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 01:33 Вот такой баг нашел по этому поводу: https://bugreports.qt.nokia.com/browse/QTBUG-21222
Название: Re: QPainter drawText засерает память? Отправлено: andrew.k от Октябрь 31, 2011, 02:05 Ну вот следовало ожидать.
А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет. Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 02:11 Ну вот следовало ожидать. 4.7.4 :(А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет. Качаю 4.7.3 , посмотрю как будет на старой версии работать. Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 02:57 Все по старому :( даже хуже.
Название: Re: QPainter drawText засерает память? Отправлено: andrew.k от Октябрь 31, 2011, 03:12 Может попробовать другой из нескольких вариантов drawText?
Хотя скорее всего все подобным образом должны работать. Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 13:30 А какая есть альтернатива? может каким-то другим образом...
Название: Re: QPainter drawText засерает память? Отправлено: andrew.k от Октябрь 31, 2011, 13:40 Я имел ввиду использовать один из вариантов drawText. Там их штук 8.
Но шанс на успех 0,4%. Если бы у меня было время заниматься. И если это достаточно важно для проекта, то я бы взял исходник QPainter. И стал бы искать ошибку. И потом бы использовал свой исправленный QPainter. Странно на самом деле. Довольно явная бага же. Почему ее до сих пор не поправили? А может это и не бага совсем, может просто это позже произойдет? Еще такой эксперимент, выполнить эту функцию использующую drawText 10 раз к примеру. Или еще больше. Если есть утечка, то 1 метр превратится в соответствующее количество. А если так и останется 1 метр, то может так и надо? Может там кешируется что-нибудь? Название: Re: QPainter drawText засерает память? Отправлено: _OLEGator_ от Октябрь 31, 2011, 13:57 Попробуй так:
Код
Не по теме: таким способом текст рисуется быстрее Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 14:48 Попробуй так: Попробовал, таким методом рисует в 2-3 раза меднение. А результат в памяти такой же...Код
Не по теме: таким способом текст рисуется быстрее Название: Re: QPainter drawText засерает память? Отправлено: Bepec от Октябрь 31, 2011, 15:24 Можно пожалуйста кусок кода, желательно вообще урезанный клас вашего потока для теста и проверки?
Название: Re: QPainter drawText засерает память? Отправлено: _OLEGator_ от Октябрь 31, 2011, 16:55 Попробуй так: Попробовал, таким методом рисует в 2-3 раза меднение. А результат в памяти такой же...Код
Не по теме: таким способом текст рисуется быстрее Опять же не по теме: Быстрее рисует с заранее подготовленным QPainterPath, который не надо каждый раз создавать при отрисовке, именно на создание все время и тратиться. Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 17:51 Сейчас привожу код в божеский вид, а то я накуролесил, надо розложить все по полочкам.
Название: Re: QPainter drawText засерает память? Отправлено: Ubuntu_linux от Октябрь 31, 2011, 18:37 Переделал весь код, изменил структуру и в результате все получилось :) Вот это жырок.
Что-то по кругу ходило.... |