Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сводим к минимуму объем памяти, занимаемой программой [D5, Win95/98, WinME, NT4, Win2k]


Vladimir Bolotin ©   (2002-01-10 20:57:00) 

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


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

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


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

Виндовс 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.


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

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

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

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

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

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


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

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


Fellomena   (2002-01-11 12:04:00) [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, но при этом код оптимизируется гораздо лучше.

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


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

Intel C/C++


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

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

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


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

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо