Здравствуйте, foka, Вы писали:
F>Добрый день (ночь)!
F>У меня вопрос туманный и неконкретный, за что сорри.
F>Так вот. При запуске приложения, которое весит порядка 30 кБ, т.е. самое обычное приложение, занимаемая им память оказывается целых ~1.2 Мб!
F>Объясните, кто может, почему это происходит и как этого избежать!
Загружаются используемые твоей программой динамические библиотеки, плюс твоя программа что-то выделяет и т.д. Как избежать исходи из ответа .
Здравствуйте, foka, Вы писали:
F>У меня вопрос туманный и неконкретный, за что сорри. F>Так вот. При запуске приложения, которое весит порядка 30 кБ, т.е. самое обычное приложение, занимаемая им память оказывается целых ~1.2 Мб! F>Объясните, кто может, почему это происходит и как этого избежать!
Если я правильно помню, по умолчанию выделяется 1 MB на стек, например... А еще можно написать приложение, которое будет весить 4 KB и откушать _всю_ вирутальную память
Здравствуйте, foka, Вы писали:
F>Добрый день (ночь)!
F>У меня вопрос туманный и неконкретный, за что сорри.
F>Так вот. При запуске приложения, которое весит порядка 30 кБ, т.е. самое обычное приложение, занимаемая им память оказывается целых ~1.2 Мб!
F>Объясните, кто может, почему это происходит и как этого избежать!
Если хочешь маленькую и шуструю прогу под винду, то мождно так сделать
соответсвенно, не будет CRT (включая new и delete)
в итоге имеем: 2Кб екзешник, ~100 кб в памяти.
если заполнить прогу содержимым, то ИМХО 10-15 Кб екзешник, 1-1.5 Мб память.
на мой взгляд — самый простой путь, как существенно уменьнить прогу...
Hi!
> Так вот. При запуске приложения, которое весит порядка 30 кБ, т.е. самое обычное приложение, > занимаемая им память оказывается целых ~1.2 Мб! > Объясните, кто может, почему это происходит и как этого избежать!
Настрой правильно размер стека в приложении. По умолчанию у MSVC это, как раз 1Mb, который и живет в твоем адресном пространстве... Остальные 0.2Mb это скорее либо что-то динамическое, что аллоцируется при запуске приложения — скорее всего из RTL или других динамических библиотек...
Кстати, если твое 30Kb приложение использует DLL — то их код (сегмент кода) также в общем случае будет смапирован в твое адресное пространство, что также приведет к его увеличению...
Thanks a lot and best regards.
---
Mickael P. Golovin
которые по заверениям микрософт (тм), влияют на выделяемую процессу память. Но как я их ни крутил, программа весит в памяти одинаково, что с ними, что без них... Вот.
Hello foka, you wrote:
> которые по заверениям микрософт (тм), влияют на выделяемую процессу память. Но как я их ни крутил, программа весит в памяти одинаково
Ну и что, что программа отъела мегабайты ВИРТУАЛЬНОЙ памяти? Сказать про занимаемую физическую память, зная занятый объем виртуальной — невозможно. Эти величини могут как совпадать, так и отличаться на порядки.