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


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


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


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

 

Интересное

Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...
Hаиболее часто задаваемые...
Данный спиок вопросов и ответов на них содержит наиболее частозадаваемые вопросы по использованию в своих программах для microsoftwindows 95 и microsoft windows nt 4.0 возможности оболочки,...
Подробнее...
Звук в Linux
Под звуковой подсистемой понимается инфраструктура операционной системы, отвечающая за работу установленных в компьютере устройств для обработки звуки, а именно звуковых карт, а также различных...
Подробнее...
Каким станет...
Интернет самоуправляем, он ежедневно пополняется миллионами разрозненных документов. И поиск нужных сведений в таком колоссальном массиве усложняется. Именно поисковые механизмы – один из...
Подробнее...
FAQ по методам...
Многие, насмотревшись фильмов про «хакеров», где половина вымысла имеют искаженное представление про взломы удаленных компьютеров. Скажу сразу, что не каждый камп можно ломануть. Хотя, может я...
Подробнее...
Перенаправление stdout в...
Для перенаправления stdout в область памяти (или файл) необходимо написать небольшую конструкцию.Редирект в память или строку (std::string)
Подробнее...
Выбор принтера
Дом печати: правильно выбираем домашний принтер Принтер для дома станет отличным решением, если среди ваших домочадцев есть те, кому необходима постоянная распечатка документов. Какой же домашний...
Подробнее...

Продукт "1С: Бухгалтерия 8 КОРП". Что это такое и для чего он нужен? Бухгалтера строго соблюдают порядок ведения хозяйственной деятельности предприятия. Прошли времена, когда нелегкий труд...
Подробнее...
Работа с портами
Известно что в компьютере очень много собрано различных устройств , возникает вопрос как операционная система общается с ними. Для этого и служит порт, то есть эта «дверь» через которую программа...
Подробнее...
Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...