Russian Qt Forum

Qt => Общие вопросы => Тема начата: Dickobraz от Июль 10, 2006, 10:58



Название: leek памяти или фича
Отправлено: Dickobraz от Июль 10, 2006, 10:58
(Qt 4.1.0-win-VC2005)
Интересная наблюдается картина. Даже не знаю как описать. Есть у меня приложение, работающее с svg графикой, но т.к. возможностей QtSVGRenderer оказалось мало, пришлось портировать librsvg, а она тянет за собой WinGTK+. Не это важно, где-то в librsvg есть лики памяти, видно даже в диспетчере задач, но если приложение свернуть/развернуть, в Output окне VC вижу загрузку
Код:

'test_svg.exe': Loaded 'D:\lib\Qt\4.1.0\plugins\accessible\qtaccessiblewidgetsd1.dll', Symbols loaded.

после чего размер используемой памяти сбрасывается до 3-5 Мб. И ситуация опять повторяется - занятая память растет - свернуть/развернуть - память освободилась.
Вопрос вот в чем - кто освобождает память? и что это за плагин такой qtaccessiblewidgetsd1.dll? Или он здесь вообще ни при чем? Или, если глобальней, Qt так не делает?
Кто нибудь сталкивался с таким?


Название: leek памяти или фича
Отправлено: L.Marvell от Июль 10, 2006, 12:07
По поводу освобождения памяти, так это судя по всему фича винды. Раньше также заметил на собственных прилагах и проверил на других. Попробуй любое другое приложение, свернуть/развернуть и понаблюдать за памятью.


Название: leek памяти или фича
Отправлено: Dickobraz от Июль 10, 2006, 12:26
Цитата: "L.Marvell"
Попробуй любое другое приложение, свернуть/развернуть и понаблюдать за памятью.

Да, эффект при свернуть/развернуть приложения написанного на Qt , присутствует. Но в моем приложении происходят утечки в сторонней библиотеке, а память освобождается вся. Ведь нереально, что GTK ловит оконные сообщения от Qt, а оконного handle GTK я не создаю, даже GPixbuf не использую, только контекст cairo. Отключал рендеринг - все прекрасно, создание и удаление контекста cairo ликов не вызывает, а при рендеринге - память ликует (я знаю где, но не в этом суть). Есть идея, что конфликтует менеджер памяти Qt со своей отложенной очисткой, с менеджером от GTK, но это похоже, мифы, т.к. не знаю как такое может быть.


Название: leek памяти или фича
Отправлено: QCasper от Июль 10, 2006, 17:53
самое прикольное, что когда разворачиваешь приложение в памяти занимает меньше чем при первой загрузке, так я написал прогу она жрала 25 метров в памяти (графики много), при свертывании - 800к, при развертывании и дальнейшей работе 16 метров :)


Название: leek памяти или фича
Отправлено: Alikus от Июль 11, 2006, 00:38
Кстати :) (может и не в тему) В винде я тож такую мазу замечал. Когда сворачиваешь в систрей выделение памяти сразу сокращается на порядки у проги. Тот же LDC++ :) В развернутом 7мб в свернутом 1мб :)


Название: leek памяти или фича
Отправлено: Dickobraz от Июль 11, 2006, 07:53
Надо отследить, какой метод вызывается при сворачивании/разворачивании окна, который вызывает сброс выделенной памяти, но может кто с ходу знает, что при этом происходит, т.к. моя прога не имеет возможности сворачиваться (full screen)?


Название: Re: leek памяти или фича
Отправлено: aljeshishe от Январь 13, 2010, 18:52
Кстати :) (может и не в тему) В винде я тож такую мазу замечал. Когда сворачиваешь в систрей выделение памяти сразу сокращается на порядки у проги. Тот же LDC++ :) В развернутом 7мб в свернутом 1мб :)
На qt приложениях такого не замечал, по крайней мере попробованные мной exampl'ы занимают одинаковое количество памяти что до что после сворачивания.
Но заметил такой эффект у theBat. Скорее всего просто память свопится на винт. Если полазить по менюшкам, странички обратно подгружаются в оперативку.


Название: Re: leek памяти или фича
Отправлено: Dendy от Январь 13, 2010, 19:11
А с кем это вы тут на кладбище разговариваете?


Название: Re: leek памяти или фича
Отправлено: foxexe от Январь 13, 2010, 22:46
я щас точно не припомню, но это такая фича у винды, она не сразу отводит освобождённую память от программы, если нет необходимости можно и подождать. Точно к сожалению не скажу, могу поискать какими функциями Windows API можно принудительно обновить информацию о памяти.


Название: Re: leek памяти или фича
Отправлено: foxexe от Январь 13, 2010, 22:47
ого, и я туда- же , не заметил совсем((


Название: Re: leek памяти или фича
Отправлено: vet от Январь 14, 2010, 09:49
да ладно вам, новички то не смотрят на дату. а информация полезная ;)


Название: Re: leek памяти или фича
Отправлено: SASA от Январь 14, 2010, 10:48
А с кем это вы тут на кладбище разговариваете?
Тота я удивился
Цитировать
(Qt 4.1.0-win-VC2005)
  :)