Размер программы.

Для примера.
Я делаю код:
Решил его оптимизировать:
И в результате я получаю файл больше чем в первом коде. Пример приведён точно, только с другими данными и меняется только данный код. При попытке создать массив в константах код вырастет ещё больше.
Что вообще происходит? Как массив данных может быть больше такого же количества вызываемых процедур?
Добавлено спустя 4 минуты 51 секунду:
Мне теперь что, все данные делать внешними, чтоб точно знать, что они места занимать не будут?
Добавлено спустя 36 минут 5 секунд:
инициализировал массив вручную... размер программы стал меньше... Причём без разницы как инициализирую, массив байт или массив LongWord.
что за бред творится?
Добавлено спустя 3 минуты 15 секунд:
Делаю проверки на Linux.
Я делаю код:
- Код: Выделить всё
var
n, m: integer;
procedure MyProc(zzz: longword);
begin
...
inc(n);
inc(m);
end;
begin
...
n := 1;
m := 4;
MyProc(5);
MyProc(67);
MyProc(55);
MyProc(66);
MyProc(45);
...
MyProc(33);
...
end;
Решил его оптимизировать:
- Код: Выделить всё
var
n, m: integer;
iArr: array[1..40] of byte = (5, 67, 55, 66, 45, 64, ..., 33);
procedure MyProc(zzz: longword);
begin
...
inc(m);
end;
begin
...
m := 4;
for n := 1 to 40 do
MyProc(iArr[n]);
...
end;
И в результате я получаю файл больше чем в первом коде. Пример приведён точно, только с другими данными и меняется только данный код. При попытке создать массив в константах код вырастет ещё больше.
Что вообще происходит? Как массив данных может быть больше такого же количества вызываемых процедур?
Добавлено спустя 4 минуты 51 секунду:
Мне теперь что, все данные делать внешними, чтоб точно знать, что они места занимать не будут?
Добавлено спустя 36 минут 5 секунд:
инициализировал массив вручную... размер программы стал меньше... Причём без разницы как инициализирую, массив байт или массив LongWord.
что за бред творится?
Добавлено спустя 3 минуты 15 секунд:
Делаю проверки на Linux.