Ошибка: Failed to parse the Currency Converter XML document.
$34 171.76


Ошибка: Failed to parse the Currency Converter XML document.
$1 434.43


Ошибка: Failed to parse the Currency Converter XML document.
$1 063.48


Оптимизация проекта в 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кб (как в С++), без всякого усечения и убирания пакетов.

 

Интересное

Полезные функции для...
Эта статья фактически краткий справочник по функциям для работы с файлами.Описываемые функции редко кто использует, но это не значит, что они бесполезны.Напротив, они очень даже полезны... Но они...
Подробнее...
Увеличение...
Невысокая производительность и плохой доступ к информации часто вызваны неэффективностью каналов глобальной сети. Это ведет к снижению продуктивности, недовольству клиентов и несоблюдению правовых...
Подробнее...
Windows нужно поучиться у...
С каждым новым выпуском Windows, в систему добавляются новые возможности, новые фрагменты кода и увеличивается её размер. Это следствие, вытекающее из закона Мура, которое использует Гейтс при...
Подробнее...
PHP кодировка писем
У меня часто спрашивают, как отсылать письма с помощью php в правильной кодировке: после отправки письма с русскими буквами, на почту людям приходит абракадабра.А все дело в том, что для почты у...
Подробнее...
Подгрузка меню для сайта с...
Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Например, в одном окне может располагаться меню для управления...
Подробнее...
Ваш сайт
Словом юзабилити обозначается удобство использования какой-либо вещи и ее полезность. Корень слова лежит в английском языке, в котором он обозначает полезность, комфорт. 
Подробнее...
Используем Cron
Данная заметка предназначенна для тех, кто собирается работать с cron, но еще не знает как все это делается. Я в кратце попробую объяснить что такое cron, для чего он нужен да и как вообще с ним...
Подробнее...
Справочник по php
Справочник в формате .chm
Подробнее...
Чистка Windows
Причин подобного поведения «форточек» можно привести массу — от всевозможного программного мусора, забивающегося в укромные уголки Windows и сжирающего немало ресурсов компьютера, до инфицирования...
Подробнее...
10 советов по защите лэптопов
Ноутбук конечного пользователя, оказавшись в чужих руках (неважно, в физических или виртуальных), может принести организации серьёзные неприятности, если на нём хранилась важная информация. Ниже...
Подробнее...