Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Вниз

Сводим к минимуму объем памяти, занимаемой программой 


Vladimir Bolotin   (2002-01-10 20:57) [0]

Интересно было бы узнать Ваши методы оптимизации кода (м.б.
применение каких-либо специальных вынкций, выгрузка чего-либо
ненужного но загружаемого по умолчанию) в отношении минимизация
кол-ва памяти используемой Delphi-программой?



Вадим   (2002-01-10 21:13) [1]

Любая программа под Вин с окном будет занимать в памяти > 1Mb



evgeg   (2002-01-11 00:04) [2]

> Вадим
С какой это стати?



Vladimir Bolotin   (2002-01-11 00:37) [3]

Да. с какой?
Более того это АБСОЛЮТНО не так..

Так что вопрос остается в силе!



SergVlad   (2002-01-11 00:54) [4]

Intel C/C++



Fellomena   (2002-01-11 12:04) [5]

>> Любая программа под Вин с окном будет занимать в памяти > 1Mb

Мне кажется, что имеется ввиду не физическая память (размер файла), а размер адрессного пространства, занимаемый программой в оперативной памяти.
Действительно, даже если вы сделаете на Delphi программу без формы типа:

...
uses Windows
begin
MessageBox(0, "Text", "Caption", 0);
end;

и запустив её посмотрите сколько она занимает в памяти, то будете удивленны (я была) она занимает там около 1.6 Mb (!!!)
Алексей Петров предположил, что 1 мегабайт съедается большим (по умолчанию в Delphi) размером стэка, но я установила его на минимум (65525 bt) и ничего не изменилось.
К примеру AVP монитор занимает около 700-800 kb.
Просто, как мне кажется, Borland в ущерб оптимизации кода сделал свой компилятор быстрым.
Кто работает на С++ знают, что скорость компилирования у C++ гораздо ниже чем у Delphi, но при этом код оптимизируется гораздо лучше.

У кого какие мысли ?



NailS   (2002-01-11 15:14) [6]

ИМХО, все дело в длл-ях, используемых программой.
Например, ole32.dll, oleaut32.dll и иже с ними.



Vladimir Bolotin   (2002-01-11 21:58) [7]

Да, и в нех тоже.
Например, если делать следующую выгрузку

{$IFDEF WIN32}
FreeLibrary(GetModuleHandle("OleAut32"));
{$ENDIF}

то можно высвободить определенное кол-во памяти.

Т.о. меня интересуют еще какие-либо способы оптимизации использования памяти.

А про СИшный компилятор все верно сказано. И вариант перехода на VC++ мне тоже понравился.. :-)



evgeg   (2002-01-11 22:30) [8]

Виндовс 95.
Дельфи 2.
Проект - форма, на которой лежит кнопка
Размер exe - 181 248 b
Размер в памяти - 208.7 K

Yes Another Calculator
Размер exe - 23 040 b (один из самых маленьких калькуляторов по размеру exe, написан на
VC, использует mfc42.dll)
Размер в памяти - 1.5 M (!)

Измерено с помощью Memload 2.0.

Так что, господа и дамы, что-то вы путаете с 1 Mb.



DK   (2002-01-12 05:19) [9]

2evgeg © (11.01.02 22:30)
Только один ньюанс:
Если вы на форму кинете Image1 и по клику на кнопке загрузите к примеру 2МБ Битмап, а потом глянете в MemLoad, то он вам покажет столько-же (???)
НТ-шный TaskManager показывает в данной ситуации использование памяти точнее.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.031 c
3-99893           F                     2001-12-27 18:22  2002.01.31  
Как регенирировать индексы


3-99851           Bachin                2001-12-25 20:51  2002.01.31  
IB:Named Transaction in trigger


1-99964           shelest               2002-01-14 11:34  2002.01.31  
Grid и его разновидность.


3-99842           Петрович              2001-12-26 06:03  2002.01.31  
Для чего нужна конструкция For Update


14-100040         panov                 2001-12-06 12:57  2002.01.31  
>Merlin