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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Виджет занимает слишком много оперативной памяти  (Прочитано 4280 раз)
hackoff
Гость
« : Апрель 03, 2010, 15:53 »

Обратил внимание на то, что окошки созданные в Qt занимают много оперативной памяти.
Например вот такое не хитрое приложение
Код:
#include <QApplication>
#include <QMainWindow>

int main(int argc,char *argv[]){
    QApplication app(argc,argv);
    QMainWindow window;
    window.show();
    app.exec();
}

занимает 10 мегабайт памяти. Но это пол беды. После того как созданное окошко развернуть во весь экран оно станет занимать 17 мегабайт и при уменьшении размера память не высвобождается.
Просветите пожалуйста, из-за чего так и как с этим бороться.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 03, 2010, 16:40 »

Чем меряешь? Не учел, что место занимают еще и разделяемы библиотеки? Поищи по форуму, вопрос поднимался и ответы были.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
hackoff
Гость
« Ответ #2 : Апрель 03, 2010, 16:48 »

в диспетчере задач глянул. Испугался Улыбающийся .
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 03, 2010, 16:51 »

Забей, все нормально. Можешь еще вот как приколоться - сверни окно и посмотри на потребление памяти.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
SABROG
Гость
« Ответ #4 : Апрель 03, 2010, 17:05 »

в диспетчере задач глянул. Испугался Улыбающийся .

Тролли уже писали, что диспетчер задач Windows может показывать выделение памяти, когда она на самом деле давно освобождена. Это особенность Windows. Она выделяет память, потом ты грохаешь объект, чтобы её освободить, но Windows её не освободит пока эту память не затребует другое приложение.

А память на развертывание окна выделяется потому, что backing store в qt кеширует изображение виджета, чтобы увеличить производительности системы рисования, чем больше картинка, тем больше памяти занимает кэш.
Записан
hackoff
Гость
« Ответ #5 : Апрель 04, 2010, 01:59 »

спасибо за ответы и за внимание Улыбающийся
(почему бы кнопочку "спасибо" не прикрутить к форуму? нужная штука в хозяйстве Улыбающийся )
Записан
SABROG
Гость
« Ответ #6 : Апрель 04, 2010, 19:01 »

спасибо за ответы и за внимание Улыбающийся
(почему бы кнопочку "спасибо" не прикрутить к форуму? нужная штука в хозяйстве Улыбающийся )

Чтобы люди не зазнавались Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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