|
|
Оптимизация проекта в Delphi
Введение
Здравствуйте,
программисты-делфисты. Повидал я не мало многих программ написанных на делфи.
Есть хорошие, есть не очень, но их размер меня всегда поражал. 0.6, 1, 5 и даже
10 мегабайт!!! А программки то - тьфу, явно не офис или что-то громоздкое. Вот и
решил я написать статью, как правильно оптимизировать свой проект так, чтоб не
было казусов: программа должна 2 числа +,-,/,* а занимает места больше чем 400
Кб. Не судите строго, а если есть замечание, пишите: ZETRIX-Soft@mail.ru
-
Надо учесть для чего пишется программа, если она
что-то должна выполнить, и закрыться (ничего не отображая), то не надо писать
так Form1.visible:=false. Надо полностью удалить форму (View\Project
Manager\Ваш проект\Unit1 и нажать кнопку Удалить. Так же, в данном случае,
можно использовать Win API. Процесс создания форм, кнопок достаточно сложен
(по сравнению с обычным методом), но достаточно эффективен.
-
Непосредственно настроить компилятор (программа
получится с максимальным быстродействием). Заходим в меню Project\Options,
заходим на вкладку Compiler и убираем все галочки из Runtime errors и
Debugging. Внимание! Это можно безбоязненно делать лишь в том случает, когда
Ваша программа полностью отлажена, и обработку всех исключительных ситуаций Вы
учли.
-
Настройки пакетов (самый важный пункт ). Заходим в
меню Project\Options, заходим на вкладку Packages. Ставим флажок Build with
runtime packages. И смотрим, что у нас в строке там написано (Вот мой список:
vcl; rtl; indy; vclx; dbrtl; vcldb; bdertl; vclie; vclshlctrls;
IntrawebDB_50_70; Intraweb_50_70; Rave50CLX; Rave50VCL; dclOfficeXP;
IcsDel50;inet;xmlrtl; inetdbbde; inetdbxpress; dsnap; dsnapcon; soaprtl;
VclSmp; webdsnap; websnap; ibxpress; vclactnband; visualclx; visualdbclx;
dbexpress; dbxcds; inetdb; vcldbx; adortl; teeui; teedb; tee; dss).О боже,
скажете Вы, если узнаете: ВСЁ что в этой строке по умолчанию компилируется в
ваш проект! После пары манипуляций там остаётся: vcl и всё. Внимание! Если у
Вас уже куча компонентов, т.е. у Вас уже есть написанная программа, не
удаляйте всё сразу, если Вы удалите что-то нужное, то во-первых размер
программы увеличится, а во-вторых программа может не работать на других ПК.
Если Вы что-то нечаянно удалили, или хотите добавить, то нажмите кнопку Add...
и добавите нужный пакет. P.S.: После этих преобразований, скомпилированный
пустой проект занимает 16,5 Кб. Всё же не 300…
-
Если ваша программа редко использует какие либо
функции или процедуры, то вынесите их в DLL файл, чтоб память не засоряли
(хотя сейчас это и не так важно, памяти оперативной "куча" 1 - 2 гигабайта это
уже не редкость, но всё же это подчеркнёт Ваш профессионализм).
-
Если Ваша программа использует графические данные,
звуки, видео, и всё это в достаточном кол-ве, то не надо создавать файлы
ресурсов, они всё равно скомпилированы в 1 exe-файл. Лучше создать специальную
папку вместе с программой (ну как в играх многих например DATA) и держать их
там, конечно есть минус - если переносить программу, то и файлы надо
переносить за собой, но есть плюс - динамически использовать все эти данные,
т.е. если вам надо в Image вывести картинку, то при загрузке программы не надо
сразу загружать этот рисунок, а загрузить только тогда, когда, например, будет
открыта форма с этим Image или пользователь что-то нажмёт.
Кузин Вадим ~ ZETRIX-Soft
|
|