|
|
|
|
 |
 |
 |
|
Что такое VCL? Компоненты VCL – объекты упрощающие программирование, каждый объект содержит множество функций, которых в приложении используется от силы процентов 10, а компилятор послушно стыкует все библиотеки со всем их нужным и не очень содержимым.
Попробуем создать приложение без использования VCL. Для этого сначала необходимо удалить визуальную форму. View -> Project Manager, там удаляем Unit1. Теперь весь код будет писаться в исходном коде проекта. Project -> View Source. По идее =) вы должны увидеть такой код:
Program Project1;
Uses Forms;
{$R *.res}
Begin
Application.Initialize;
Application.Run;
End.
Теперь откомпилируем наш проект комбинацией Ctrl+F9, затем Project->Information for Project1 мы видим, что было откомпилировано всего 13 строк(Source compiled), а вот весит все это удовольствие уж никак ни на 13 строк, а все 309408 байтов(Code Size), т.е. все 300 Кбайт.
Некоторые программисты считают, что для повышения производительности необходимо отказаться от использования пакетов. Выбираем Project->Options затем закладку Packages и ставим галочку напротив Build with runtime packages. Теперь снова компилируем проект т смотрим информацию о нем…впечатляет, да? Теперь вместо 309408 мы видим 2168 байтов, НО посмотрите в окно информации в область Packages Used(Используемые пакеты), там перечислены файлы, которые необходимы для работоспособности приложения. В нашем примере это файлы rtl70.bpl и vcl70.bpl. Это своеобразные динамические библиотеки без которых программа работать не будет. Выходит, что мы вовсе не освободили программу от визуализации и она все еще используется.
Т.е. теперь общий размер файлов, который необходимо установить на машину пользователя = вашим файлам + необходимых bpl-файлов. Эти bpl-файлы лежат в Windows/System32, их размер составляет 2159616 байт, так что в итоге размер программы намного увеличился, следовательно, делая выводы мы убираем в свойствах проекта флажок с Build with runtime packages и попробуем придумать чего-нибудь еще.
В исходном коде проекта удалите раздел uses и все, что находится между begin и end, у Вас должен остаться вот такой код:
Program Project1;
{$R *.res}
Begin
End.
Попробуйте откомпилировать проект и посмотреть информацию, мы видим, что теперь размер составляет 9124 байт, вместо 300 Кил. Почему так? Да потому, что у нас между begin и end были вызовы методов объекта TApplication, для этого в раздел uses необходимо подключать модуль Forms. Forms входит в состав VCL, из-за этого к программе подключается код, который на самом то деле нами и не используется.
Проведем эксперимент. После строки program Project1; добавим строку uses buttons; откомпилируем и просмотрим информацию о проекте и увидим, что размер увеличился до 309024 байт, а теперь вместо buttons напишем windows и увидим, что теперь размер будет составлять 9252 байт. С чем это связано? А с тем, что модуль buttons относится к VCL, а модуль windows к RTL.
В папке .......Delphi7Source в разных подпапках по типам лежат исходные коды всех модулей, на данный момент нас интересуют папки vcl и rtl.
На этом мы и закончим. Сегодня я показал, как сделать не визуализированное приложение, а твоя задача уже заключается в малом, знать множество WinAPI-функций и писать с помощью них самые маленькие, быстрые и надежные приложения.
Удачного Вам кодинга
Автор: legolin
|
|
 |
 |
 |
|
|