Russian Qt Forum
Ноябрь 26, 2024, 08:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: leek памяти или фича  (Прочитано 6408 раз)
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 так не делает?
Кто нибудь сталкивался с таким?
Записан
L.Marvell
Гость
« Ответ #1 : Июль 10, 2006, 12:07 »

По поводу освобождения памяти, так это судя по всему фича винды. Раньше также заметил на собственных прилагах и проверил на других. Попробуй любое другое приложение, свернуть/развернуть и понаблюдать за памятью.
Записан
Dickobraz
Гость
« Ответ #2 : Июль 10, 2006, 12:26 »

Цитата: "L.Marvell"
Попробуй любое другое приложение, свернуть/развернуть и понаблюдать за памятью.

Да, эффект при свернуть/развернуть приложения написанного на Qt , присутствует. Но в моем приложении происходят утечки в сторонней библиотеке, а память освобождается вся. Ведь нереально, что GTK ловит оконные сообщения от Qt, а оконного handle GTK я не создаю, даже GPixbuf не использую, только контекст cairo. Отключал рендеринг - все прекрасно, создание и удаление контекста cairo ликов не вызывает, а при рендеринге - память ликует (я знаю где, но не в этом суть). Есть идея, что конфликтует менеджер памяти Qt со своей отложенной очисткой, с менеджером от GTK, но это похоже, мифы, т.к. не знаю как такое может быть.
Записан
QCasper
Гость
« Ответ #3 : Июль 10, 2006, 17:53 »

самое прикольное, что когда разворачиваешь приложение в памяти занимает меньше чем при первой загрузке, так я написал прогу она жрала 25 метров в памяти (графики много), при свертывании - 800к, при развертывании и дальнейшей работе 16 метров Улыбающийся
Записан
Alikus
Гость
« Ответ #4 : Июль 11, 2006, 00:38 »

Кстати Улыбающийся (может и не в тему) В винде я тож такую мазу замечал. Когда сворачиваешь в систрей выделение памяти сразу сокращается на порядки у проги. Тот же LDC++ Улыбающийся В развернутом 7мб в свернутом 1мб Улыбающийся
Записан
Dickobraz
Гость
« Ответ #5 : Июль 11, 2006, 07:53 »

Надо отследить, какой метод вызывается при сворачивании/разворачивании окна, который вызывает сброс выделенной памяти, но может кто с ходу знает, что при этом происходит, т.к. моя прога не имеет возможности сворачиваться (full screen)?
Записан
aljeshishe
Гость
« Ответ #6 : Январь 13, 2010, 18:52 »

Кстати Улыбающийся (может и не в тему) В винде я тож такую мазу замечал. Когда сворачиваешь в систрей выделение памяти сразу сокращается на порядки у проги. Тот же LDC++ Улыбающийся В развернутом 7мб в свернутом 1мб Улыбающийся
На qt приложениях такого не замечал, по крайней мере попробованные мной exampl'ы занимают одинаковое количество памяти что до что после сворачивания.
Но заметил такой эффект у theBat. Скорее всего просто память свопится на винт. Если полазить по менюшкам, странички обратно подгружаются в оперативку.
Записан
Dendy
Гость
« Ответ #7 : Январь 13, 2010, 19:11 »

А с кем это вы тут на кладбище разговариваете?
Записан
foxexe
Гость
« Ответ #8 : Январь 13, 2010, 22:46 »

я щас точно не припомню, но это такая фича у винды, она не сразу отводит освобождённую память от программы, если нет необходимости можно и подождать. Точно к сожалению не скажу, могу поискать какими функциями Windows API можно принудительно обновить информацию о памяти.
Записан
foxexe
Гость
« Ответ #9 : Январь 13, 2010, 22:47 »

ого, и я туда- же , не заметил совсем((
Записан
vet
Гость
« Ответ #10 : Январь 14, 2010, 09:49 »

да ладно вам, новички то не смотрят на дату. а информация полезная Подмигивающий
Записан
SASA
Гость
« Ответ #11 : Январь 14, 2010, 10:48 »

А с кем это вы тут на кладбище разговариваете?
Тота я удивился
Цитировать
(Qt 4.1.0-win-VC2005)
  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.168 секунд. Запросов: 21.