Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi (http://forum.oszone.net/showthread.php?t=30432)

Surround 21-06-2003 06:01 208605

Не знаете, почему проги написанные на Делфи такие большие в объеме? Приложение - только форма пустая выскакивает - 500кб!

Galosh 21-06-2003 14:13 208606

Дело в компиляторе Делфи. Плюс делфиевского компилятора заключается в том, что он закомпиленый файлик встраивает несколько обязательных библиотек. Потому готовая програма работает без дополнительных библиотек(тобиш без установленого Делпхи). Разительное отличие с Си++Билдер. Сишные экзешники занимают мало, но не работают без дополнительных библиотет(около 3 Мб), которые надо скопировать в папку с програмой. Кстати это вопрос, которым мучаются все програмисты на Делпхи - компилятор Си++ Билдер.
Хотя как по мне Делпхиеский компилятор лучше.

vasketsov 21-06-2003 19:08 208607

Surround
Короче, объясняю.

1) Если в проекте нет ссылок на модуль Forms - проект несклько кил будет, порядка 10, в него RTL борландовая помещается, такая немеренная - потому что на OLE основана.

2) Если есть ссылка на Forms.pas - сразу более 300kb будет.

И то и другое незначительно от версии Delphi зависит.

Дело в том что в Forms очень много всего понаписано для того, чтобы окошки работали, там и статических переменных куча, и шлюзы, и массивы огромной длины,... Вот оттуда ноги и растут.

А к компилятору это не имеет отношения вообще никакого.

PS существует опция линкера, которая определяет, bpl-ки в проект собираются или отдельно болтаются и и надо с собой таскать. Аналог есть и у BCB.

Surround 21-06-2003 20:04 208608

vasketsov
В этом линкере отключил неиспользуемые библиотеки - на размере файла никак не сказалось:o

Добавлено:

Дык получается если у меня в проге выскакивает хоть одно маленькое окошко, то это чудо уже весит 300kb?:gigi:

vasketsov 21-06-2003 20:47 208609

1) значит не то отключил.

2) если выдаешь его через WINAPI MessageBox - вовсе нет, если через TForm - стопудово.

Surround 25-06-2003 20:09 208610

Дык как все-таки размер файла уменьшить? Я так и не понял.
Жму Свойства проекта (русская версия) удаляю на вкладке Пакеты все Пакеты для дизайна. Из Uses выкидываю все, что не нужно. Размер файлов - все равно const. Ну не меняется...:(

vasketsov 25-06-2003 20:32 208611

Surround
неужто надо носом тыкать?

На закладке Packages надо включить Build with runtime packages. Все пакеты, что перечислены ниже, не будут линковаться в EXE-шник и их придется таскать отдельно.


Borislav 26-06-2003 08:50 208612

Можно и потом чем нибудь сжимать типа upx.
У меня пятая Делфа. Файл около 300 кил сжался до 144 Кб.
И Вин Апи учить не надо. (Если это для себя):biglaugh:

Megabyte 27-06-2003 06:35 208613

Есть другой способ - библиотека KOL ( http://bonanzas.rinet.ru/rindex.htm ). Она заменяет собой VCL и позволяет писать программы с использованием форм размером под 20-30 кб. Единственный минус - если пишешь программу на KOL, все визуальные компоненты должны быть из KOL.

[s]Исправлено: Megabyte, 7:36 27-06-2003[/s]

Ork Yason 27-06-2003 08:08 208614

vasketsov
если мне не изменяет память, то как-то полгода назад заходил разговор на тему не рациональности компилятора и ВЦЛ ваще, и кажись ты сказал, что компилятор выкидывает не используемые методы классов... я не ошибся?

vasketsov 27-06-2003 17:58 208615

Ork Yason
ссылку пожалуста

но тут речь в любом случае не об этом. тут нет классов, а есть статические данные и код в initialization, они по любому отработают


Время: 08:37.

Время: 08:37.
© OSzone.net 2001-