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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Утечка памяти - виноват GUI?  (Прочитано 14235 раз)
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   Вверх
  Печать  
 
Перейти в:  


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