Когда создаю exe со стандартным выравниванием секций 4К, программа весом 20К в памяти (согласно менеджеру задач) весит 600К. Когда этот же код собираю с выравниванием 512, то программа, весящая 5К, резко начинает в памяти весить 3М. Что за фигня? =) И еще, может кто знает почему 20К превращаются в 600К в памяти?... Как уменьшить размер занимаемой памяти?... пробовал собирать прогу с уменьшенными параметрами стека - непомогает почемуто.
Видимо, 600Кб - это сразу Windows даёт на программу - не важно какого (малого) размера EXE файл. Не похоже на баг.
Я думаю считается суммарный объем переданной памяти в виртульаном адресном пространстве, а это далеко не равно размеру образа программы
mrhx Во вторых, выравнивание какое? Физическое или виртуальное? Если виртуальное - то это одна из причин. Во третих, сейчас программы не изолированны, - в их АП подгружаются дополнительные модули аутпост и касперского, и еще много чего. Хотя на сам размер ехе-образа влиять не должно. Но вот на суммарный - запросто. Кстати, выводится как раз суммарный объем, вместе с кернелом и прочими либами.
nitrotoluol ааа.... ну если суммарный объем показывается тогда понятно почему больше. а выравнивание файловое: Count of sections 4 │ Machine intel386 Symbol table 00000000[00000000] │ TimeStamp 4616A963 Size of optional header 00E0 │ Magic optional header 010B Linker version 6.00 │ OS version 4.00 Image version 0.00 │ Subsystem version 4.00 Entry point 000012E0 │ Size of code 00000800 Size of init data 00001800 │ Size of uninit data 00000000 Size of image 00005000 │ Size of headers 00000800 Base of code 00001000 │ Base of data 00002000 Image base 00400000 │ Subsystem Windows GUI Section alignment 00001000 │ File alignment 00000800 <<<<< Stack 00100000/00001000 │ Heap 00100000/00001000 Checksum 00000000 │ Number of directories 16
nitrotoluol Это что за выходки? Форум не место для балагана! Первое и последнее предупреждение за нарушение правил. mrhx Посмотри SetProcessWorkingSetSize(Ex)