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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Утечка памяти - виноват GUI?  (Прочитано 13798 раз)
max1983
Гость
« : Июль 19, 2009, 09:56 »

Утечка памяти - виноват GUI?

Кинул на форму пару стандартных элементов.
Откомпилил в Release.
Запускаю и делаю Resize маусом.
В диспетчере задач наблюдаю утечку памяти.

Ет ток у меня так?
Записан
f-r-o-s-t
Гость
« Ответ #1 : Июль 19, 2009, 10:46 »

И как в диспечере отображается утечка, на сколько ?=)
Записан
max1983
Гость
« Ответ #2 : Июль 19, 2009, 11:50 »

И как в диспечере отображается утечка, на сколько ?=)
Стартовое значение при запуске - 5608
1 минута ресайза - 9 700
и дальше вроде не растет.
Пару кнопок меняют стиль поочередное нажимание съело еще 5 метров.

Ну так что ет ток у меня так?

Конечно я понимаю что утечка незначительная но 10 метров для приложение котороеимеет 15 кнопок и еще 5 контролов которые ничего не делают  Непонимающий
« Последнее редактирование: Июль 19, 2009, 11:55 от max1983 » Записан
Rcus
Гость
« Ответ #3 : Июль 19, 2009, 11:51 »

Хотел написать про то что стыдно измерять утечки при помощи taskmgr, а потом глянул на цены Purify, BoundsChecker и AQtime Улыбающийся
Ну нафиг эту винду, Valgrind + memcheck | massif /* В данном случае я бы взял именно его */ | callgrind(+KCachegrind) хоть тормозит, но всегда под рукой Улыбающийся
Записан
max1983
Гость
« Ответ #4 : Июль 19, 2009, 11:57 »

Хотел написать про то что стыдно измерять утечки при помощи taskmgr, а потом глянул на цены Purify, BoundsChecker и AQtime Улыбающийся
Ну нафиг эту винду, Valgrind + memcheck | massif /* В данном случае я бы взял именно его */ | callgrind(+KCachegrind) хоть тормозит, но всегда под рукой Улыбающийся

Да я не ищущий баги в библиотеке QT
Просто интересно как у других..
И как дела в линьке и  маке.
Записан
f-r-o-s-t
Гость
« Ответ #5 : Июль 19, 2009, 12:05 »

Хотел написать про то что стыдно измерять утечки при помощи taskmgr, а потом глянул на цены Purify, BoundsChecker и AQtime Улыбающийся
Ну нафиг эту винду, Valgrind + memcheck | massif /* В данном случае я бы взял именно его */ | callgrind(+KCachegrind) хоть тормозит, но всегда под рукой Улыбающийся
Я уже давно решил что нафиг =)

Стартовое значение при запуске - 5608
1 минута ресайза - 9 700
и дальше вроде не растет.
Пару кнопок меняют стиль поочередное нажимание съело еще 5 метров.
Ну так что ет ток у меня так?
Запустил vbox попробывал, при продолжении ресайза в меньшую сторону
память тоже медленно уменьшается.
Записан
Kagami
Гость
« Ответ #6 : Июль 19, 2009, 13:29 »

Вроде Qt использует буферизацию окна для ускорения скорости отрисовки. Скорее всего это кеш растет с увеличением размера окна.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Июль 19, 2009, 14:23 »

max1983, диспетчер задач - не измерительный инструмент.
По нему лучше ориентироваться, имеется ли процесс в памяти и всё.

Если ты будешь работать с контейнерами Qt, то диспетчер задач тебя вообще сильно озадачит.
Записан

Юра.
ufna
Гость
« Ответ #8 : Июль 19, 2009, 15:17 »

да, в диспетчере задач по этому делу чудеса творятся, особенно если много чего рисуется своими методами, а еще и с контейнерами..

к счастью, это не значит что все плохо Улыбающийся
Записан
max1983
Гость
« Ответ #9 : Июль 19, 2009, 15:52 »

max1983, диспетчер задач - не измерительный инструмент.
По нему лучше ориентироваться, имеется ли процесс в памяти и всё.

Если ты будешь работать с контейнерами Qt, то диспетчер задач тебя вообще сильно озадачит.

Значит последняя страшная история такова:
Для создание красивого интерфейса как-то решил использовать один популярный контрол
все в стиле office 2007 и после 3 недель разработки проги с его "крутым дизайном" обнаружил что размер
проги после 10 резайзов формы стал почти 80 метров в диспетчере задач
тут и так понятно что дело просто дрянь.
чем больше ресайзов тем больше размер
с тех пор чтоб не терять дорого время проверяю таким быстрым способом
понятно что ето не профессионально но и так понятно когда с оперативы пропали 100 метров то и любой способ для проверки пойдет

тут ситуация не такая страшная  Смеющийся
вот я подумал мож у кого есть готовый проект, ему та просто стоить запустить прогу и ресайзить немного
и поделится с народом опытом. Подмигивающий

Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #10 : Июль 19, 2009, 16:07 »

max1983, прога есть у всех, Qt Assistant/Designer, виджетов в нём достаточно, тестируй, сравнивай.

Тест на Асистенте:
22М/13М
Если я изменяю размер Асистента в большую сторону то получаю
23М/14М
Если я изменяю размер Асистента в меньшую сторону то получаю
22М/13М
Записан

Юра.
Фродо
Гость
« Ответ #11 : Август 03, 2009, 21:37 »

Юзай Деликер!
Записан
SASA
Гость
« Ответ #12 : Август 04, 2009, 12:35 »

max1983, диспетчер задач - не измерительный инструмент.
По нему лучше ориентироваться, имеется ли процесс в памяти и всё.

Не согласен. Может память он кажет не верно, но GUI ресурсы показывает правильно.
Про  Qt.
Я писал на форуме про утечку регионов http://www.prog.org.ru/topic_7602_0.html.
Пишем  тролям. Они - "У нас ваша тестовая программа работает нормально. И диспетчер задач - не измерительный инструмент".
Но не скажешь же, что ворованый BoundsChecker показывает утечку, причём дикую!
Засняли ролик, как полсе выделения 10000-ого ресурса окно перестаёт отрисовываться. Месяц не было ответа, потом закончилась лицензия Грустный Вообщем, троли в утечках не признаются.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #13 : Август 04, 2009, 22:51 »

Но не скажешь же, что ворованый BoundsChecker показывает утечку, причём дикую!

А зачем им это знать, ворованный ли у тебя BoundsChecker или нет. Отправил лог да и все. Лицензию на BoundsChecker точно запрашивать небудут Улыбающийся
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #14 : Август 05, 2009, 02:59 »

Засняли ролик, как полсе выделения 10000-ого ресурса окно перестаёт отрисовываться. Месяц не было ответа, потом закончилась лицензия Грустный Вообщем, троли в утечках не признаются.
странное заявление. как минимум потому, что буквально на днях *бага* с использованием объекта гди в регионах была официально исправлена для 4.6.0:
Цитировать
- QRegion is no longer a GDI object by default. This means it is no
   longer subjuect to gui-thread only nor does it potentially impact
   the 10.000 GDI object limit per process. By explicitly calling
   .handle() a GDI object will be created and memory managed by
   QRegion. The native handle is for reading out only. Any GDI calls
   made on the HRGN handle will not affect the QRegion.

бага без номера - подозреваю, уведомлял об утечке не через трекер?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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