Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Как уменьшить размер конечного файла в Delphi

Автор: Slippery
Дата сообщения: 29.01.2003 10:44
Простая апликация (5 кнопок и 4 эдитбокса на форме) , а экзешник получается 400К.
Как правильно настроить проэкт (дебаг уже закончен, и речь идет о конечном билде) чтоб уменьшить размер файла.

о компрессии экзешника говорить не будем - вопрос о настройках
Автор: Felix
Дата сообщения: 29.01.2003 12:29
Выхода 2: пишем на API, но это судя по всему не подходит, либо копаем в сторону пакетов, которые компилятся вместе с проектом (и мой совет: проверь выполняемые фунции и библиотеки в разделе uses, т.к. некоторые могут вообще не использоваться...) На счёт пакетов вроде здесь обсуждение было...
Автор: Varenik
Дата сообщения: 29.01.2003 17:36
Slippery
Лучше всего воспользоваться библиотекой KOL:

http://xcl.cjb.net
Автор: Maximus_BRZ
Дата сообщения: 29.01.2003 18:47
Slippery
Тебе Felix правильно советует, таки проги лучше в API писать... А вообще, лучше использовать сжималки самих экзешников (лучше не во всех отношениях, а лучше только потому что размер процентов на 50 уменьшается, а то и больше), типа ASPack http://www.aspack.com
Автор: BSB
Дата сообщения: 30.01.2003 05:57
Slippery, ты еще посмотри знаешь что, поди кучу ненужностей наподключал. Наверно, задействуешь библиотеку какую-нибудь крупную. Убери и посмотри, как получится без нее. Если тебе важнее размер файла, чем всякие тени к Label'ам (кстати, легко делать самому все эти приблуды), убирай ненужные компоненты и пиши обычными.
Автор: Maximus_BRZ
Дата сообщения: 30.01.2003 21:15
BSB
Да обычно такой хлам не очень много жрет, если это не комплексное что-то...
Автор: GreyGendalf
Дата сообщения: 31.01.2003 05:59
если приложение на дельфях, то чисто средствами дельфей сильно не уменьшишь.
там приложение из одной формы без ничего уже весит минимум 300Кб.
если размер принципиален, то переходи на си.
можно конечно c API работать и в дельфях, но зачем?...
а использование пакетов позволяет уменьшить размер эгзешника, но не инсталляции.
упоминание же в разделе uses юнитов, которые реально не используются, как правило не увеличивает размер, если только в этих самых юнитах нет раздела initialization/finalization (если речь идет вообще про Delphi).
Автор: bo
Дата сообщения: 31.01.2003 13:53
В принципе 300-400Кб в зависимости от версии Делфи жрет конкретно VCL.
Т.е., грубо говоря, если у тебя в uses есть модуль Forms, а его там будет,
если ты программу кликаешь, а не пишешь, ни какие опции не помогут.
Это связано с наследованием - подробнее в документации к выше упомянутой KOL.
А писать на Win API на Делфях ни чем не хуже чем на Сях - тут кто
что лучше знает. Если с нуля то Ся -перспективнее.
Автор: Maximus_BRZ
Дата сообщения: 31.01.2003 20:30
bo

Цитата:
Если с нуля то Ся -перспективнее.

Обьясни чем? Я с Си не знаком, Дельфи более-менее... Все равно рано или поздно придется на Си переходить, т.к. Дельфи себя изжила... Вот мне и интересно знать, чем АПИ на си перспективнее...

Slippery
Учи ASM...
Автор: bo
Дата сообщения: 03.02.2003 18:09

Ся перспективнее для писания на ВинАПИ хотя-бы потому,
что винда на нем писана, все прототипы ее функций в нотации Си описаны
и заголовочные файлы в первую очередь на нем доступны,
а уж потом их переводят и классы-обертки придумывают.
Все это относится и к подавляющему большинству продуктов,
имеющих свой АПИ (типа DirectX, FAR, различные СУБД).

Кстати Делфя себя не изжила.
К сожалению она сильно привлекает к себе "кликальщиков"
на основании "творений" которых и формируется такое мнение.
Но на самом деле помимо средства быстрой разработки
она еще содержит и мощный язык, которым просто надо
уметь пользоваться.

Вобщем хочешь просто кликать - Визуал Басик тебе в руки.
Планируешь к буржуинам ехать, аль в крутой конторе
программистской, в коллективе работать - С, Ява.
Ну а Делфя - чтоб и быстро слепить и показать не стыдно было

Автор: Maximus_BRZ
Дата сообщения: 03.02.2003 19:54
bo
Спасибо, понял! Как разберусь с поступлением, сразу сяду учить!..
А говоря, что Дельфи себя изжила, я имел ввиду то, что 7-я версия была последней... Больше мы дельфи не увидим...
Автор: Felix
Дата сообщения: 04.02.2003 10:22
to Slippery
Вобщем если подытожить: (я согласен со всем вышесказанным)
1. Пишем на API (довольно сложно, трудозатраты будут, особенно если до этого с API не сталкивался, как при рытье колодца чайной ложкой...)
2. Включаем пакеты времени выполнения, но как правильно уже говорил GreyGendalf инсталляцию не уменьшишь, хотя файл сокращается до размера <<50k + 1,9 М расплата за vcl50 (vcl40, 60 по вкусу)
3. Используем UPX (самый реальный способ сокращения объёма, при ограниченных возможностях)

А в случае, когда счёт идёт на килобайты совет такой: убирай ненужные модули из uses и создавай компоненты в RunTime (имеет смысл при создании относительно большого их числа)
Автор: Maximus_BRZ
Дата сообщения: 04.02.2003 20:51
Felix

Цитата:
Используем UPX

С командной строкой не все работать умеют... Если только графический интерфейс качнуть.
Автор: GreyGendalf
Дата сообщения: 05.02.2003 07:18
на дельфях самое маленькое приложение

program Project2;

begin

end.

получается 13842 байта.

меньше, ну никак не получится....
Автор: Striker
Дата сообщения: 06.02.2003 16:13
GreyGendalf
А вот и неправда ваша! Минимальное приложение типа

program Little;
uses Windows;
begin
//do something
end.

будет размером 8 192 байт. Сжимаем с UPX - получаем 5 120 байт
Автор: Slippery
Дата сообщения: 06.02.2003 17:46
Большое спасибо всем кто откликнулся!
ОСОБЕННОЕ СПАCИБО Varenikу !!!
установил библиотеку KOL - это самое крутое решение всех проблем для маленьких прог типа утилиток, со времен написания вопроса моя програмка выросла в несколько раз, я за сорок минут переточил все под KOL и результат обалденный 26К (для фанатов UPX после компресси ~15K )
Автор: GreyGendalf
Дата сообщения: 07.02.2003 05:31
Striker
согласен... частично ...
но и моя правда есть... ;о)

Delphi5 - 16384
Delphi6 - 8192
Delphi7 - 14336

Автор: Steepe_Hare
Дата сообщения: 10.02.2003 11:03
Maximus_BRZ

Цитата:
А говоря, что Дельфи себя изжила, я имел ввиду то, что 7-я версия была последней...


И с чего такие упаднические настроения?

Паскаль уже 20 лет хоронят, с момента его рождения
Автор: Pinocchio
Дата сообщения: 11.02.2003 09:17
Slippery
Про чуствительность к размеру это лучше Dev-Pascal, если хочется именно в паскале. Он ориентирован именно на WinAPI. В поисковках фирменный сайт есть. Они гнушные, то есть бесплатные, по этому не обязательно в C+- деньги зарабатывать. Dev-Pascal понимает режим BP7.0 и режим Delphi и кажется C++.


От пакетов зря отказываешься, так как в основном разработанные программы на Delphi запускаются на тех компьютерах где Delphi уже есть. Мой инсталятор - это окна в стиле вин2000/InstallShield занимал 69kb и то это только графические баннеры туда понапиханные. Выключай только VCL.BPL, тогда в любой момент скопировать в WINDOWS\SYSTEM один файл с любого дистрибутива тебе покажется достаточно простым действом.
Автор: BoBaH
Дата сообщения: 11.02.2003 16:11
А на вопрос Slippery'a так никто и не ответил... Флеймили по большому счету...
На самом деле там не так много настроек, чтобы можно было как-то особенно ломать голову над их использованием. В параметрах проекта метишь Build with runtime packages, только следи за тем, чтобы пакеты используемые и подключенные совпадали, а то размер может и вырасти
Автор: Olly
Дата сообщения: 12.02.2003 16:03
Maximus_BRZ

Цитата:
А говоря, что Дельфи себя изжила, я имел ввиду то, что 7-я версия была последней... Больше мы дельфи не увидим...


А откуда такая информация, что 7-я версия будет последней?
Автор: Pinocchio
Дата сообщения: 13.02.2003 12:52
Фирма борланд займётся рассадкой капусты и помидоров - и никакого Delphi или BP. (быстро-растворимая лапша).
Автор: roma
Дата сообщения: 14.02.2003 09:59
насчёт уменьшения:
берём редактор ресурсов и удаляем некоторые строковые постоянные (которые не нужны) это если счёт на байты идёт...
Автор: BoBaH
Дата сообщения: 14.02.2003 12:14
Что-то из области сплетней - проект Galileo куда девать ?
Цитата Мир ПК 1.2003 (стр.142):
Цитата:
"Событие месяца. Проект Galileo: Borland бросает вызов Microsoft... Как заявил Тед Шелтон... в начале 2003 г. на рынке появится новый инструментарий с кодовым названием Galileo. В него войдут системы программирования, которыми давно славится Borland (Delphi, JBuilder, C++Builder). Компания решила расширить кроссплатформную поддержку Windows, Linux и .NET, добавив в свое семейство язык C#, и не исключено, что даже Visual Basic!"
Автор: Maximus_BRZ
Дата сообщения: 15.02.2003 18:24
Olly

Цитата:
А откуда такая информация, что 7-я версия будет последней?

У меня друг работает в Developer Express - он мне это сказал. Я думаю он знал что говорит.
Автор: KostiKL
Дата сообщения: 01.03.2003 23:48
Чего это вы Дельфю похоронили, а?
.... в то время как Борланд официально заявил о разраотке следующей версии Delphi!
Автор: Pinocchio
Дата сообщения: 03.03.2003 13:16
roma
Подскажи пожалуйста какой нибудь редактор ресурсов. Как-то давно у меня имелась программа Microsoft Expresso. Она это делала. Сейчас я не занаю как получить редактирование ресурса после компиляции. Такое возможно?
Автор: c0r0ner
Дата сообщения: 03.03.2003 13:23
Pinocchio

ИМХО для редактирования ресурсов подходит Restorator v2.5 build 757 Очень удобная програмулина, даже менюшки в визуальном виде показывает.

Из альтернативных: EXEScope
Автор: Maximus_BRZ
Дата сообщения: 03.03.2003 20:07
Pinocchio
ResHacker - лучший!!!

KostiKL

Цитата:
Борланд официально заявил о разраотке следующей версии Delphi!

Я на сайте не нашел ничего...
Автор: Pinocchio
Дата сообщения: 04.03.2003 12:59
c0r0ner
Restorator shareware. У меня нет ключей, по этому считаю ResHacker лучше - он freeware. Сакчал кучу Restoratorov и один ResHacker. Ниодна из программ напроч не видит Delphi forms от 7.0. Рекомендую собственную:
http://mtex.chat.ru/bplxplor.zip

Страницы: 12

Предыдущая тема: Экспорт QReport


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.