Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизРазмер программы в памяти Найти похожие ветки
← →
JJ © (2005-09-21 20:30) [0]Какими директивами компилятора, кроме {$M min,max} можно уменьшить размер программы в памяти?
← →
Джо © (2005-09-21 20:32) [1]А {$M} имеет отношение "к размеру программы в памяти"?
← →
Anatoly Podgoretsky © (2005-09-21 20:41) [2]Вот очень маленькая программа
Program test;
begin
Readln;
end.
Посмотри результат.
← →
JJ © (2005-09-21 20:42) [3]{$M } задает размер стека. Пробовал, ставил стек 16384 - в таск менеджере программа занимала 1588к, убирал директиву - 1604. Программа создает одно окно на WinAPI, и болше ничего не делает, а в памяти занимает 1.5Мб...
← →
JJ © (2005-09-21 20:46) [4]Если запустить этот код:
uses
messages,
windows;
var
mMsg : TMsg;
while GetMessage(mMsg,0,0,0) do
begin
TranslateMessage(mMsg);
DispatchMessage(mMsg);
end;
end.
программа занимает ~622k
← →
Джо © (2005-09-21 20:55) [5]
> [4] JJ © (21.09.05 20:46)
> Если запустить этот код:
> uses
> messages,
> windows;
> var
> mMsg : TMsg;
> while GetMessage(mMsg,0,0,0) do
> begin
> TranslateMessage(mMsg);
> DispatchMessage(mMsg);
> end;
> end.
> программа занимает ~622k
Неправда ваша. На Д6 она занимает 8192 байта.
← →
JJ © (2005-09-21 20:57) [6]Это на диске она занимает 8192, а если ее запестить, то в Task Manager`е объем памяти - ~600к
← →
AlexWlad © (2005-09-21 21:11) [7]
> JJ © (21.09.05 20:46) [4]
А ты еще добавь ComObj или QuickRpt...
← →
JJ © (2005-09-21 21:20) [8]И такой код занимает ~600k
program P;
type
TPoint = packed record
X: Longint;
Y: Longint;
end;
tagMSG = packed record
hwnd: integer;
message: integer;
wParam: integer;
lParam: integer;
time: integer;
pt: TPoint;
end;
var Msg: tagMSG;
function GetMessage(var lpMsg: tagMsg; hWnd: integer;
wMsgFilterMin, wMsgFilterMax: integer): integer; stdcall;external "user32" name "GetMessageA";
begin
while GetMessage(Msg,0,0,0)=0 do;
end.
← →
Anton_K © (2005-09-21 21:31) [9]>JJ
Пиши на ассемблере.
← →
Плохиш © (2005-09-21 21:45) [10]
> JJ © (21.09.05 20:30)
> Какими директивами компилятора, кроме {$M min,max} можно
> уменьшить размер программы в памяти?
Что, костюмчик жмёт?
← →
JJ © (2005-09-21 21:51) [11]Зачем компилятор забирает у системы больше памяти, чем нужно программе?
← →
Nick Denry © (2005-09-21 22:07) [12]Anton_K © (21.09.05 21:31) [9]
А разница? Голое окн в винде все-равно будет занимать около 600 кб.
4-х килобайтный экзешник написанный на асме и содержащий голый диалог в памяти (обратите внимание, так показывает диспетчер задач) занимает 708 Кб.
JJ © (21.09.05 21:51) [11]
компилятор не причем
← →
Anton_K © (2005-09-21 22:15) [13]
> А разница? Голое окн в винде все-равно будет занимать около
> 600 кб.
На программе побольше разница будет заметна.
← →
Nick Denry © (2005-09-21 22:35) [14]Anton_K © (21.09.05 22:15) [13]
На программе побольше разница будет заметна.
ИМХО время затраченное на написание программы на АСМе и разница которая будет заметна будут в десятки раз отличатся друг-от друга.
И сама разница существенной не будет вообще (порядка 30-40 кб).
← →
Anton_K © (2005-09-21 22:37) [15]
> ИМХО время затраченное на написание программы на АСМе и
> разница которая будет заметна будут в десятки раз отличатся
> друг-от друга.
За всё нужно платить.
← →
Nick Denry © (2005-09-21 22:54) [16]Anton_K © (21.09.05 22:37) [15]
Это явно не тот случай :)))
← →
Игорь Шевченко © (2005-09-21 23:18) [17]
> Зачем компилятор забирает у системы больше памяти, чем нужно
> программе?
А ты знаешь, сколько нужно программе ? Программе нужно много.
← →
Poirot © (2005-09-22 12:27) [18]JJ © (21.09.05 21:51) [11]
Ну как минимум библиотечки нужны, которые тебе помагают окошки рисовать и прочая фигня:) посмотри всю таблицу экспорта для примера :)
Угадай куда эти библиотечки мапятся?:) если не ошибаюсь я конечно:)
Да и не компилятор это забирает:) ему-то по барабану:) гы:) в данном случае её ползует, память, загрузчик:)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c