Russian Qt Forum
Ноябрь 05, 2024, 22:10
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QT и память
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QT и память (Прочитано 15438 раз)
pakulo
Гость
QT и память
«
:
Апрель 08, 2007, 13:07 »
Добрый день,
У меня такой вопрос. Создал простенькую программку на QT, просто кнопка. И она у меня в памяти занимает 12мб. Посмотрев многие примеры, оказалось что минимальный размер программы с библиотекой QT будет 10мб где-то.
Возможно ли как-то уменьшить этот показатель?
Если у меня программка будет сидеть в трее, можно ли сделать, что бы она занимала не 10мб, а скажем 1мб...
Спасибо
Записан
noosooth
Гость
QT и память
«
Ответ #1 :
Апрель 08, 2007, 16:15 »
Боюсь радикально тут ничего не сделать.
Жрет память, зараза
, что для библиотеки такого класса и при нынешних объемах памяти - вполне нормально.
Боюсь для Вас это будет слабым утешением, но при увеличении Вашего собственного кода (не одна кнопка, а скажем двадцать одна)
размер потребляемой памяти растет не так радикально.
Ещё такой нюанс (если Вы под виндой):
Скажем моё поделие (Qt 4.2.3) под XP и XP64, если верить Task Manager,занимает в памяти 10-11 метров.
Если приложение свернуть (минимизировать), то Task Manager показывает всего-лишь 1,5 метра.
Тут пробовал запускать под Vista x64 - тамошний Task Manager или как
его там зовут - кажет стабильно 8 c лишним мегабайт, в том числе и для
"свернутого" приложения.
Спрашивается кому верить?
(бинарник один и тот же, Qt собран статически)
Записан
pakulo
Гость
QT и память
«
Ответ #2 :
Апрель 08, 2007, 16:20 »
>>Если приложение свернуть (минимизировать), то Task Manager показывает всего-лишь 1,5 метра.
Да, я видел это. Мне вот интересно. Это реализовано библиотекой или ОС сама это делает. Т.е. может при минимизации она сама уменьшает память, копируя данные на диск..
Тогда такой вопрос. У меня программа занимает 20Мб, я поработал, свернул ее в трей, как мне сделать что бы уменьшилась память? т.е. также как при минимизации...
Записан
_govorilka
Гость
QT и память
«
Ответ #3 :
Апрель 08, 2007, 16:40 »
Цитата: "pakulo"
Добрый день,
У меня такой вопрос. Создал простенькую программку на QT, просто кнопка. И она у меня в памяти занимает 12мб. Посмотрев многие примеры, оказалось что минимальный размер программы с библиотекой QT будет 10мб где-то.
Возможно ли как-то уменьшить этот показатель?
Если у меня программка будет сидеть в трее, можно ли сделать, что бы она занимала не 10мб, а скажем 1мб...
Спасибо
Раздели свою программу на две половинки (сделай два exe-файла):
1. То, что постоянно весит в трее
2. То, что запускается в отдельном процессе, после каких-либо действий пользователя (щелчок мыши по иконке, расписание или системное событие).
В первом куске, не используй никаких Gui-примочек (исключение cоставляет разве, что иконка в трее), тогда объем памяти будет гораздо меньше.
добавлено спустя 17 минут:
Цитата: "noosooth"
Ещё такой нюанс (если Вы под виндой):
Скажем моё поделие (Qt 4.2.3) под XP и XP64, если верить Task Manager,занимает в памяти 10-11 метров.
Если приложение свернуть (минимизировать), то Task Manager показывает всего-лишь 1,5 метра.
Это глюк Task Manager'а. Вместо него пользуюсь бесплатной Process Explorer (скачать можно отсюда -
http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx
).
Записан
pakulo
Гость
QT и память
«
Ответ #4 :
Апрель 08, 2007, 16:58 »
Не, разделять на две программы не можно.
Может просто есть какая-нить функция чистки памяти?
Записан
_govorilka
Гость
QT и память
«
Ответ #5 :
Апрель 08, 2007, 17:18 »
Цитата: "pakulo"
Не, разделять на две программы не можно.
Может просто есть какая-нить функция чистки памяти?
Цитата: "pakulo"
Не, разделять на две программы не можно.
Может просто есть какая-нить функция чистки памяти?
Разделение на две программы - это не способ чистки памяти, это способ оптимизации программы. Зачем постоянно держать в трее Gui-поток?
Записан
pakulo
Гость
QT и память
«
Ответ #6 :
Апрель 08, 2007, 17:56 »
Проблема в том, что у меня программа клиент, скажем до сервера АСИ.
Поэтому возможности разделить на две программы нету. ((
Записан
_govorilka
Гость
QT и память
«
Ответ #7 :
Апрель 08, 2007, 18:19 »
Цитата: "pakulo"
Проблема в том, что у меня программа клиент, скажем до сервера АСИ.
Поэтому возможности разделить на две программы нету. ((
Найди в форме тему о размере exe, мне кажется, там есть ответы интересные для тебя.
Попробуй оптимизировать саму библиотеку Qt (Отключи классы, которые тебе не нужны), включи максимальную оптимизацию кода в настройках компилятора и т.д.
Записан
noosooth
Гость
QT и память
«
Ответ #8 :
Апрель 08, 2007, 18:22 »
Цитата: "_govorilka"
Цитата: "noosooth"
...Если приложение свернуть (минимизировать), то Task Manager показывает всего-лишь 1,5 метра.
Это глюк Task Manager'а. Вместо него пользуюсь бесплатной Process Explorer ...
Не вижу никакой разницы между показаниями
Task Manager'а (Mem Usage) и Process Explorer'а (Working set) под XP64 SP2. Абсолютно одно и тоже.
Где глюк-то?
Насчет Vista, виноват, не туда смотрел.
Тоже уменьшает размер при свертывании, но не так радикально.
Записан
_govorilka
Гость
QT и память
«
Ответ #9 :
Апрель 08, 2007, 18:28 »
У меня Windows XP Pro SP2, а Process Explorer, как мне кажется, просто удобнее стандартного Task Manager'a
Записан
noosooth
Гость
QT и память
«
Ответ #10 :
Апрель 08, 2007, 18:50 »
Цитата: "_govorilka"
У меня Windows XP Pro SP2, а Process Explorer, как мне кажется, просто удобнее стандартного Task Manager'a
И такая операционка где-то тут у меня валяется и тоже показания одинаковые.
Про глюк Вы пошутили или к слову пришлось?
Записан
_govorilka
Гость
QT и память
«
Ответ #11 :
Апрель 08, 2007, 19:12 »
Цитата: "noosooth"
И такая операционка где-то тут у меня валяется и тоже показания одинаковые.
Про глюк Вы пошутили или к слову пришлось?
Можно вопрос, чем так быстро оси меняете?
Записан
noosooth
Гость
QT и память
«
Ответ #12 :
Апрель 08, 2007, 20:07 »
Да просто несколько осей на разных винтах да разделах + Grub.
Перезагрузится недолго вроде
.
Наверное что-нить вроде VMware в данном случае удобнее, но я так сказать напрямую желаю без "посредников".
Честно говоря, достал этот зоопарк из "многообразных" операционных систем от M$.
Записан
Alex03
Гость
QT и память
«
Ответ #13 :
Апрель 09, 2007, 09:04 »
Вроде как XP буферизирует (частично) видео вывод, вот выделяет память под окна.
Записан
Mr. Пронька
Гость
QT и память
«
Ответ #14 :
Апрель 09, 2007, 09:39 »
Цитировать
Вроде как XP буферизирует (частично) видео вывод, вот выделяет память под окна.
Всякое возможно. А с другими приложениями вы этот трюк наблюдали? Я уже когда-то поднимал тему про выделение памяти в Qt-приложениях, но никто ничего толком ответить не смог. Дело не только в том, что при сворачивании количество потребляемой памяти снижается. При разворачивании окна на весь экран оно ещё и увеличивается!
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...