Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Плохой компилятор


Автор: S.A.P. 19.6.2004, 12:38
Программирую на Delphi уже год, а задался вопросом только сейчас. При компиляции любой програмы размер кода достигает не разумных размеров (по сравнению с Visual Studio.net). Так обычная, небольшая программа для работы с базами данных в Delphi 7 достигает в 1,5 мегов. А можно избавиться от лишнего мусора или такой плохой компилятор? И еще эффективность программ, откомпилированых под Delphi гораздо ниже, чем, скажем, под FoxPro. Может что - нибудь подскажите?

Автор: Vex 19.6.2004, 12:45
http://forum.vingrad.ru/index.php?showtopic=20703

Автор: RA 19.6.2004, 12:50
Попробуй покопаться в ресурсах скомпилированной программы, там иногда можно найти Туеву тучу ненужных *.Bmp, Форм About от используемых компонентов и ненужных Error месаджей.

Автор: Cheba 19.6.2004, 17:54
RAdmin, ну найдет он их. А как от них избавиться?

Автор: RA 19.6.2004, 23:01
Resource Hacker их найдёт и удалит, it's realy easy man wink.gif

Автор: Felt 20.6.2004, 01:57
или Restorator'ом можно, да к тому же при компиляции можно задать несколько параметров, в результате чего код немного сократится (отладочная информация, некоторые пакеты и т. д.)

Автор: S.A.P. 20.6.2004, 14:59
Felt, а можно попобробнее о параметрах при компиляции, я что - то пробовал, размер меняется не значительно.

Автор: Borland_Delphi_6 20.6.2004, 22:17
RAdmin
BMP видел неоднократно, удалял, ни размер проги особо не уменьшился, ни чего...

Автор: Felt 21.6.2004, 00:27
Цитата(Perchilla @ 20.6.2004, 14:59)
Felt, а можно попобробнее о параметрах при компиляции, я что - то пробовал, размер меняется  не значительно.

Для примера, я создаю новый проект и компилирую пустую форму. В этот момент моя прога весит 368128 байтов. Думаю, что для программы, которая просто показывает свою форму это многовато.

Жму Shift+Ctrl+F11 В открывшемся окне перехожу на вкладку Compiler. Ставлю флажки у элементов Optimization, Strict var-strings, Extended syntax, Open parameters, Huge strings, Assignable typed constants. Остальные флажки снимаю.

Перехожу на вкладку Packages.
Там располагаются пакеты для доступа к драйверам BDE, там же модули для работы с технологией COM и т. д. Если твоя прога не использует эти модули, то ты можешь их флажки снять. С другой стороны некоторые пакеты уже установлены на машине юзера, а значит и не стоит их за собой тащить. Поэтому ставим флажок возле Build width runtime packages и тем самым гарантируем, что "программа будет использовать пакеты времени выполнения". Жмем на кнопку ОК и снова перекомпилируем прогу.

У меня ее размер стал уже 16896 байтов. Ну в общем то неплохо. Но опять же нужно быть уверенным, что у юзера уже установлены компоненты, которые прога использует.

С другой стороны можно сократить размер своей проги еще вдвое. Для этого нужно вообще удалить все формы и модули. В тексте программы убрать модуль Forms и его объекты Application. Потом добавить модуль Windows и кодить только на функциях API. Размер таких программ около 8 KB при том что она более функциональна для своего размера, хотя и трудно программируется.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)