Название: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 00:19 Доброго времени суток, уважаемые знатоки.
Пишу небольшое приложение на Куте. Столкнулся с проблемой, что любое приложение, даже очень маленькое жрет около 9-10 метров оперативной памяти. Вопрос, нельзя ли каким-либо образом оптимизировать приложение, как с этим бороться, да и из-за чего такая загрузка? Название: Re: Загрузка оперативной памяти Отправлено: andi от Сентябрь 18, 2007, 05:06 Ох, фигасе!!!
У меня проект (15 форм, и строк там тыщ несколько) жрет 11 метров (это с отладочной инфой!!!). При таких заявлениях сразу хочется увидеть версию Qt, платформу ну и конечно *.pro Скорей всего статически линкуете все подряд (да еще с отладочными версиями). Название: Re: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 09:20 Спасибо за инфу. Вот только не нада таких громких заявлений... я новичек и на куте программирую недавно.
А вообще говорю даже об их екземплах, которые вместе с библиотекой идут. Название: Re: Загрузка оперативной памяти Отправлено: spigel от Сентябрь 18, 2007, 11:09 да, размер графической программки в Qt большой - посмотрите на размеры dll, они же целиком в памяти вашей программы располагаются!
при этом разделяемая часть также прибавляется к вашей программе - виртуальная память не обязательно вся в RAM находится!. Название: Re: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 12:31 Тогда следующий вопрос... тут уже с долей ламерства.
Если у меня запускаются два экземпляра программы, то каждая из них грузит в память библиотеки. Я слышал есть возможность использования одного кода несколькими процессами, посоветуйте пожалуйста, где об этом можно почитать, желательно конкретные ключевые слова, чтобы я мог самостоятельно найти нужную информацию, что это за технология и как ее применять. (Относительно ОС Windows) Название: Re: Загрузка оперативной памяти Отправлено: Tonal от Сентябрь 18, 2007, 12:35 Винда делает это автоматом.
Название: Re: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 12:58 Ничего подобного. Проверял.
Название: Re: Загрузка оперативной памяти Отправлено: Dodge от Сентябрь 18, 2007, 13:12 Ничего подобного. Проверял. Ерунду не надо писать, если вы используете динамические библиотеки(не важно как они линкуются к вашему приложению), то windows подгрузит только 1 копию dll, запусти вы хоть миллион копий своего приложения, вопрос в том как вы узнали объем памяти занимаемый вашим приложением, на сколько мне извесно, через стандартные средство вышеуказанной оси, это zделать невозможно. Есть замечательная программа TaskExplorerEX(если не ошибаюсь), вот с помощью нее, вы можете посмотреть объем памяти занимаемый именно вашим "кодом". З.Ы. Смотреть нада не на вессь процесс, а на ваш модуль в этом процессе. Название: Re: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 13:37 Прошу прощенья, действительно сказал глупость. В рамках одного процесса длл загружается только один раз... верно, однако не в рамках разных процессов... если уж отойти немного от темы.... как тогда, если я хочу использовать для разных программ одну библиотеку, и загружая ее только раз в программу. Я знаю, что это возможно при помощи технологии СОМ, может есть еще другие способы?
Название: Re: Загрузка оперативной памяти Отправлено: cutwater от Сентябрь 18, 2007, 13:47 Я думаю я уже сам запутался и не знаю чего мне нада. Большое спасибо всем за помощь, буду дальше читать маны.
Название: Re: Загрузка оперативной памяти Отправлено: spigel от Сентябрь 18, 2007, 14:17 да, использование COM в некоторых случаях позволит разделить оперативную память вашей программы от библиотечной - так чтобы библиотека не могла использовать ваши адреса для чтения или записи. в большинстве случаев все работает в общей памяти и из-за ошибки в библиотеке падает все.
|