Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.29;
Скачать: CL | DM;

Вниз

Память, занимаемая программой   Найти похожие ветки 

 
Пастор   (2003-05-11 18:31) [0]

Написал простейшую прогу с одним окном на чистом API, после компиляции размер ехе-файла получился 8k, при запуске программы они занимает оперативной памяти почти 2 мб !

Вопрос, возможно ли как то уменьшить объем используемой оперативной памяти ?


 
Anatoly Podgoretsky ©   (2003-05-11 18:38) [1]

Это размер не используемой памяти, а размер резервированной памяти, сюда входит размер системных библиотек.


 
Пастор   (2003-05-11 19:55) [2]

Ну и как сделать, что бы ее резервировалось меньше ?


 
Anatoly Podgoretsky ©   (2003-05-11 20:12) [3]

А чего должно волновать резервирование, ради морального удовлетворения.


 
Пастор   (2003-05-11 20:19) [4]

программа висит в памяти все время, потому лишние пару мегобайт могут быть далего не лишними тем у кого не продвинутые компьютеры


 
Nick Denry ©   (2003-05-11 20:59) [5]

Ты уверен? Может че нибудь не так? У меня например просто окно больше 30 кб в памяти не занимало. [D7,win98,winXP].
Опять, смотря чем смотришь. Виндовый диспетчер одно показывает,NU System Information - другое. Смотри внимательней.
А потом если это действ. резервирование - тогда забей. Главное чтобы после выхода все освобождалось. Мало ли кто кода выйти захочет..........


 
Anatoly Podgoretsky ©   (2003-05-11 21:22) [6]

Пастор (11.05.03 20:19)
Это не ДОС где вся программа загружается в память, реальнее предположить, что в основном твоей программы вообще не будет в памяти или будет только минимум.


 
default ©   (2003-05-11 21:39) [7]

Anatoly Podgoretsky © (11.05.03 21:22)
естественно!
to Пастор
дык на это есть файл подкачки


 
Anatoly Podgoretsky ©   (2003-05-11 22:02) [8]

Который тоже является побманным. Проводил как то эесперимент, размер по монитору 128 мб, физический размер на диске 0.
Точно про память знает только ядро.


 
Morfein ©   (2003-05-12 03:10) [9]

Чтобы программа занимала меньше памяти, её надо на ассемблере писать(что не есть сложно, если у тя там "чистый API") и подумывать о выгрузке любой библиотеки сразу после использования её функций... Потому что может быть твоей программе и на фиг не нужны ADVAPI32, COMCTL32, GDI32, OLE32 и OLEAUT32, которые изначально прилинковываются к программе...


 
Anatoly Podgoretsky ©   (2003-05-12 08:45) [10]

Morfein © (12.05.03 03:10)
Вот это и есть ради морального удовлетворения, этим память не съкономишь, эти библиотеки всегда загружены, а вот неприятности можешь схлопотать.


 
НАХАЛ   (2003-05-12 10:16) [11]

Выделяй динамически память, и как сказано выше, освобождай память сразу после того, как закончишь использовать объект


 
Danilka ©   (2003-05-12 10:21) [12]

НАХАЛ (12.05.03 10:16)
угу, что лучше, тормоза или лишние сьеденые пара сотен килобайт?
надо всегда смотреть по задаче.


 
Mirovodin ©   (2003-05-12 10:45) [13]

Дело действительно в dll -ках.

Написал на асме простое окно + RichEdit , используется kernel32 gdi32, user32, comctl32 и comdlg32 ~ 1200 Кб по TaskManager в 2000. Выкидываем RichEdit - ~ 800 Кб.


 
han_malign ©   (2003-05-12 11:41) [14]

Могу еще посоветовать не использовать открытые массивы и строки, под них стопудово предвыделяется память, для уменьшения перевыделений (и фрагментации памяти) при изменении размера...


 
Morfein ©   (2003-05-12 12:53) [15]

>>Mirovodin
Спасибо за поддержку...

Причём тут открытые массивы, если OLE32 + OLEAUT32 вместе весят почти полтора мегабайта и нафиг в простой программе не нужны?!


 
Игорь Шевченко ©   (2003-05-12 12:56) [16]

Morfein © (12.05.03 12:53)
> Причём тут открытые массивы, если OLE32 + OLEAUT32 вместе
> весят почти полтора мегабайта и нафиг в простой программе
> не нужны?!


Будь уверен, места они "в простой программе" не занимают.


 
Morfein ©   (2003-05-12 13:05) [17]

Если программа на delphi, то полновесно занимают! Достаточно посмотреть список загруженных модулей!


 
Danilka ©   (2003-05-12 13:12) [18]

Morfein © (12.05.03 13:05)
Советую перечитать:
Anatoly Podgoretsky © (12.05.03 08:45)

Думать над словами "эти библиотеки всегда загружены" до тех пор, пока не достигнешь просветления и не впадешь в нирвану.


 
Eraser   (2003-05-12 14:27) [19]

На Visual С++ простой редактор 13kb весит.
<font size=20 color=red>C++ Rules</font>


 
Думкин ©   (2003-05-13 12:43) [20]

Самое страшное - любая дура программа уверена что имеет право на 4 Гигабайта. Вот ведь. :-(


 
Карелин Артем ©   (2003-05-13 12:50) [21]

Думкин © (13.05.03 12:43)
Больше 2-х гигов не получит. Я проверял.


 
Ihor Osov'yak ©   (2003-05-13 12:58) [22]

2 Карелин Артем © (13.05.03 12:50)

Я не был-бы настолько уверен.
Смотрим W2K Advanced Server and DataCenter Server об использовании параметра /3GB, который в boot.ini

А также делаем поиск в msdn по ключевой фразе Address Windowing Extensions (AWE)...


 
Думкин ©   (2003-05-13 13:00) [23]


> Карелин Артем © (13.05.03 12:50)
> Больше 2-х гигов не получит. Я проверял.
> Ihor Osov"yak © (13.05.03 12:58)

Верит. Другое дело что про это система думает, и что позволит. %-)


 
Ihor Osov'yak ©   (2003-05-13 13:06) [24]

2 Думкин © (13.05.03 13:00)

Комментарий был на тему "Больше 2-х гигов не получит. Я проверял." И мелкая подсказка на тему, как с этим пределом бороться..


 
Карелин Артем ©   (2003-05-13 13:55) [25]

Проверялось на 2000"ws и на сервере (не Advanced). Ну а 9Х и гига просто так не даст в память засунуть...



Страницы: 1 вся ветка

Текущий архив: 2003.05.29;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.015 c
14-95100
Style
2003-04-24 19:51
2003.05.29
Delphi Challenge: И все-таки нужно подумать.


1-94837
PAI
2003-05-19 18:53
2003.05.29
Как создать потомка VCL-класса?


11-94779
Bogus
2002-08-25 02:07
2003.05.29
Error при работе с COL


1-94892
Vladislav
2003-05-16 08:54
2003.05.29
Как открыть определенный раздел справки


3-94719
kostas
2003-05-08 12:26
2003.05.29
Запросы TIBQuery в разных потоках (нитях.TTheard)