$2 654.87


$37.43


$131.79


Оптимизация проекта в Delphi

Здравствуйте, программисты-делфисты. Повидал я не мало многих программ написанных на делфи. Есть хорошие, есть не очень, но их размер меня всегда поражал. 0.6, 1, 5 и даже 10 мегабайт!!! А программки то — тьфу, явно не офис или что-то громоздкое. Вот и решил я написать статью, как правильно оптимизировать свой проект так, чтоб не было казусов: программа должна 2 числа +,-,/,* а занимает места больше чем 400 Кб

1. Надо учесть для чего пишется программа, если она что-то должна выполнить, и закрыться (ничего не отображая), то не надо писать так Form1.visible:=false. Надо полностью удалить форму (View\Project Manager\Ваш проект\Unit1 и нажать кнопку Удалить. Так же, в данном случае, можно использовать Win API. Процесс создания форм, кнопок достаточно сложен (по сравнению с обычным методом), но достаточно эффективен.

2. Непосредственно настроить компилятор (программа получится с максимальным быстродействием). Заходим в меню Project\Options, заходим на вкладку Compiler и убираем все галочки из Runtime errors и Debugging. Внимание! Это можно безбоязненно делать лишь в том случает, когда Ваша программа полностью отлажена, и обработку всех исключительных ситуаций Вы учли.

3. Настройки пакетов (самый важный пункт ). Заходим в меню 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…
4. Если ваша программа редко использует какие либо функции или процедуры, то вынесите их в DLL файл, чтоб память не засоряли (хотя сейчас это и не так важно, памяти оперативной “куча” 1 — 2 гигабайта это уже не редкость, но всё же это подчеркнёт Ваш профессионализм).
5. Если Ваша программа использует графические данные, звуки, видео, и всё это в достаточном кол-ве, то не надо создавать файлы ресурсов, они всё равно скомпилированы в 1 exe-файл. Лучше создать специальную папку вместе с программой (ну как в играх многих например DATA) и держать их там, конечно есть минус — если переносить программу, то и файлы надо переносить за собой, но есть плюс — динамически использовать все эти данные, т.е. если вам надо в Image вывести картинку, то при загрузке программы не надо сразу загружать этот рисунок, а загрузить только тогда, когда, например, будет открыта форма с этим Image или пользователь что-то нажмёт.

Дополнение: в настоящее время появилась новая библиотека для делфи KOL + MCK с их помощью можно создавать приложения с размером 50-100кб (как в С++), без всякого усечения и убирания пакетов.

 

Интересное

Вся правда о тИЦ
О эти три магические буквы!!!Как же любят на форумах обсуждать эту тему. Дрожь пробирает, когда открывают новый топик, посвященный тИЦ-у.. А пробирает от того, что тема настолько заезжена и сотни...
Подробнее...
Пишем описания и титлы
Как же повысить эффективность регистрации в каталогах? Ну, во-первых, регистрировать только в беляках (каталоги не требующие за размещение обратной ссылки или денег), во-вторых, использовать как...
Подробнее...
Быстродействие FAT и NTFS
В этой статье я попытаюсь дать оценку быстродействию файловых систем, используемых в операционных системах Windows95/98/ME, а также Windows NT/2000. Статья не содержит графиков и результатов...
Подробнее...
Сущность ООП
Одна из вещей, которую вы могли бы захотеть реализовать — пользовательский интерфейс, предоставляющий доступ к файлу персональных данных. ООП предоставляет вам безусловно лучшие механизмы для его...
Подробнее...
Как выбрать телевизор?
Плазменная панель уже давно перестала быть роскошью. И в эпоху технического прогресса, многие выбирают именно этот вид телевизоров. Конечно, плазма значительно дороже, но у нее есть немало...
Подробнее...
Я живу в FreeBSD
Нередко приходится слышать рассуждения типа: «FreeBSD — прекрасная серверная платформа, но ей не место на рабочем компьютере. Повседневные задачи среднему пользователю проще выполнять на...
Подробнее...
Создание потомка от класса...
Для того, чтобы определить когда мышь над компонентом, в данном примере это будет панель, мы создадим новый класс, который будет являться потомком класса TPanel, и будет обрабатывать некоторые...
Подробнее...
Удалённое восстановление...
Как импортировать большой SQL-скрипт (дамп базы данных MySQL для форума phpBB), если обычными споcобами (загрузка через web-интерфейс phpMyAdmin, Backup cPanel) проблематична, особенно на модемном...
Подробнее...
Режим редактирования в IE
Оказывается ie может редактировать открытые им документы, и не только текст, но и в том числе вставлять имиджи и т.п. По сути дела полноценный html-editor у нас в руках, но только об этом...
Подробнее...
Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...