Russian Qt Forum
Ноябрь 24, 2024, 21:26
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Загрузка оперативной памяти
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Загрузка оперативной памяти (Прочитано 6865 раз)
cutwater
Гость
Загрузка оперативной памяти
«
:
Сентябрь 18, 2007, 00:19 »
Доброго времени суток, уважаемые знатоки.
Пишу небольшое приложение на Куте.
Столкнулся с проблемой, что любое приложение, даже очень маленькое жрет около 9-10 метров оперативной памяти.
Вопрос, нельзя ли каким-либо образом оптимизировать приложение, как с этим бороться, да и из-за чего такая загрузка?
Записан
andi
Гость
Re: Загрузка оперативной памяти
«
Ответ #1 :
Сентябрь 18, 2007, 05:06 »
Ох, фигасе!!!
У меня проект (15 форм, и строк там тыщ несколько) жрет 11 метров (это с отладочной инфой!!!).
При таких заявлениях сразу хочется увидеть версию Qt, платформу ну и конечно *.pro
Скорей всего статически линкуете все подряд (да еще с отладочными версиями).
Записан
cutwater
Гость
Re: Загрузка оперативной памяти
«
Ответ #2 :
Сентябрь 18, 2007, 09:20 »
Спасибо за инфу. Вот только не нада таких громких заявлений... я новичек и на куте программирую недавно.
А вообще говорю даже об их екземплах, которые вместе с библиотекой идут.
Записан
spigel
Гость
Re: Загрузка оперативной памяти
«
Ответ #3 :
Сентябрь 18, 2007, 11:09 »
да, размер графической программки в Qt большой - посмотрите на размеры dll, они же целиком в памяти вашей программы располагаются!
при этом разделяемая часть также прибавляется к вашей программе - виртуальная память не обязательно вся в RAM находится!.
Записан
cutwater
Гость
Re: Загрузка оперативной памяти
«
Ответ #4 :
Сентябрь 18, 2007, 12:31 »
Тогда следующий вопрос... тут уже с долей ламерства.
Если у меня запускаются два экземпляра программы, то каждая из них грузит в память библиотеки.
Я слышал есть возможность использования одного кода несколькими процессами, посоветуйте пожалуйста, где об этом можно почитать, желательно конкретные ключевые слова, чтобы я мог самостоятельно найти нужную информацию, что это за технология и как ее применять.
(Относительно ОС Windows)
Записан
Tonal
Гость
Re: Загрузка оперативной памяти
«
Ответ #5 :
Сентябрь 18, 2007, 12:35 »
Винда делает это автоматом.
Записан
cutwater
Гость
Re: Загрузка оперативной памяти
«
Ответ #6 :
Сентябрь 18, 2007, 12:58 »
Ничего подобного. Проверял.
Записан
Dodge
Гость
Re: Загрузка оперативной памяти
«
Ответ #7 :
Сентябрь 18, 2007, 13:12 »
Цитата: cutwater от Сентябрь 18, 2007, 12:58
Ничего подобного. Проверял.
Ерунду не надо писать, если вы используете динамические библиотеки(не важно как они линкуются к вашему приложению), то windows подгрузит только 1 копию dll, запусти вы хоть миллион копий своего приложения, вопрос в том как вы узнали объем памяти занимаемый вашим приложением, на сколько мне извесно, через стандартные средство вышеуказанной оси, это zделать невозможно. Есть замечательная программа TaskExplorerEX(если не ошибаюсь), вот с помощью нее, вы можете посмотреть объем памяти занимаемый именно вашим "кодом".
З.Ы. Смотреть нада не на вессь процесс, а на ваш модуль в этом процессе.
Записан
cutwater
Гость
Re: Загрузка оперативной памяти
«
Ответ #8 :
Сентябрь 18, 2007, 13:37 »
Прошу прощенья, действительно сказал глупость. В рамках одного процесса длл загружается только один раз... верно, однако не в рамках разных процессов... если уж отойти немного от темы.... как тогда, если я хочу использовать для разных программ одну библиотеку, и загружая ее только раз в программу. Я знаю, что это возможно при помощи технологии СОМ, может есть еще другие способы?
Записан
cutwater
Гость
Re: Загрузка оперативной памяти
«
Ответ #9 :
Сентябрь 18, 2007, 13:47 »
Я думаю я уже сам запутался и не знаю чего мне нада. Большое спасибо всем за помощь, буду дальше читать маны.
Записан
spigel
Гость
Re: Загрузка оперативной памяти
«
Ответ #10 :
Сентябрь 18, 2007, 14:17 »
да, использование COM в некоторых случаях позволит разделить оперативную память вашей программы от библиотечной - так чтобы библиотека не могла использовать ваши адреса для чтения или записи. в большинстве случаев все работает в общей памяти и из-за ошибки в библиотеке падает все.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...