Как-то вдруг обратил внимание, что программка, которую я использую, занимает по данным Task Manager 1,5 мегабайта в памяти. Стало интересно, смогу ли я написать такую же, но которая бы занимала 50 килобайт. Скачал MS Visual Studio Express, скомпилировал и запустил простую программу, состоящую из вызова getch, запустил и очень удивился — запущенная программа заняла те же 1,5 мегабайта. Покопался в настройках, снизил до 1,3. Полученный результат меня не удовлетворил и я обратил свой взор к ассемблеру. Поискал различные примеры, позапускал их столкнулся с той же проблемой — меньше мегабайта никто не использует (программы простейшие, Hello World). В конце концов я наткнулся на http://www.grc.com/smgassembly.htm, small is beautiful, автор пропагандирует идею небольшого размера, и что же — запустив его пример (простое окошко с меню), я вижу 6 мегабайт.
Объясните пожалуйста, я отстал от жизни, и это теперь нормально, писать такие маленькие программки, которые занимают так много места в памяти ("да кто их считает?...")? Или я что-то делаю не так, если да, посоветуйте, пожалуйста, что делать. И, да, far занимает 400 килобайт. Ведь можно же!
Здравствуйте, krz, Вы писали:
krz>Здравствуйте.
krz>Как-то вдруг обратил внимание, что программка, которую я использую, занимает по данным Task Manager 1,5 мегабайта в памяти. Стало интересно, смогу ли я написать такую же, но которая бы занимала 50 килобайт. Скачал MS Visual Studio Express, скомпилировал и запустил простую программу, состоящую из вызова getch, запустил и очень удивился — запущенная программа заняла те же 1,5 мегабайта. Покопался в настройках, снизил до 1,3. Полученный результат меня не удовлетворил и я обратил свой взор к ассемблеру. Поискал различные примеры, позапускал их столкнулся с той же проблемой — меньше мегабайта никто не использует (программы простейшие, Hello World). В конце концов я наткнулся на http://www.grc.com/smgassembly.htm, small is beautiful, автор пропагандирует идею небольшого размера, и что же — запустив его пример (простое окошко с меню), я вижу 6 мегабайт.
krz>Объясните пожалуйста, я отстал от жизни, и это теперь нормально, писать такие маленькие программки, которые занимают так много места в памяти ("да кто их считает?...")? Или я что-то делаю не так, если да, посоветуйте, пожалуйста, что делать. И, да, far занимает 400 килобайт. Ведь можно же!
Размер аллоцированной виртуальной памяти не имеет никакого отношения (кроме обязательного неравенства;)) ни к реально занятой виртуальной памяти, ни к реально занятой физической памяти. То, что Вы увидели — видимая приложению виртуальная память. Используется лишь малая её часть.
krz>Объясните пожалуйста, я отстал от жизни, и это теперь нормально, писать такие маленькие программки, которые занимают так много места в памяти ("да кто их считает?...")? Или я что-то делаю не так, если да, посоветуйте, пожалуйста, что делать. И, да, far занимает 400 килобайт. Ведь можно же!
Здравствуйте, krz, Вы писали:
krz>Как-то вдруг обратил внимание, что программка, которую я использую, занимает по данным Task Manager 1,5 мегабайта в памяти.
По умолчанию каждый поток имеет мегабайт стека. Скорее всего, он и посчитался. При сборке программы можно это число уменьшить.