Уменьшить размер программы. (Настройка пакетов)

 
0
 
Delphi, Kylix & Pascal
ava
Vadим | 22.03.2013, 18:48
Привет всем!  smile   Сегодня заглянув в модули, я посидел, сколько всего ненужного там находится, когда я использую всего пару функций.
Как можно решить вопрос? Уменьшить размер  программы, убрать лишнее. Слышал, что можно хорошо выиграть в размере, если настроить пакеты.

Project\Options, заходим на вкладку Packages. Ставим флажок Build with runtime packages.
Вот что у меня там. Я так подозреваю, что тут есть лишнее, но как узнать, что можно убрать?

vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;
dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;
webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;
vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP

Kommentare (40)
ava
northener | 22.03.2013, 19:40 #
Цитата (Vadим @  22.3.2013,  17:48 findReferencedText)
Слышал, что можно хорошо выиграть в размере, если настроить пакеты.

ЕХЕ-шник действительно уменьшится. Но придется вместе с ним таскать и пакеты. А это в сумме будет заметно больше весить.
ava
DYUMON | 22.03.2013, 20:51 #
если используешь пару функций то перетащи их в отдельный модуль и отключи те модули откуда они smile
ava
Akella | 23.03.2013, 15:16 #
Пакеты можно отдать пользователю 1 раз, а потом только программу пересылать
ava
Vadим | 23.03.2013, 18:13 #
Цитата (DYUMON @ 22.3.2013,  20:51)
если используешь пару функций то перетащи их в отдельный модуль и отключи те модули откуда они smile

Я пытался много раз, но все заканчивалось крахом криворукий короче!  smile 
ava
DYUMON | 27.03.2013, 06:20 #
а чего парится по поводу размеров  программы? я тут скачивал  SQLite Expert  она delphi сделан. У него exe сам 69,7 МБ  весит. Поскольку автор в него и скины напихал и отчеты и всего всего. И ниче качают же и пользуются. Мне когда размер нужен я в 7 версии пишу. А когда уж совсем размер критичен то можно на KOL написать.
ava
Poseidon | 27.03.2013, 10:38 #
В наше время, когда космические корабли скорости передачи данных позволяют переслать 100 МБ менее чем за минуту, вы замарачиваетесь на размере программы? Сколько она сейчас у вас? 10 МБ? 20? Сколько вы хотите? По-моему будет больше геморроя, чем выгоды. Но если уж совсем нужно-нужно, то можно:
  • Вместо VCL использовать KOL
  • Писать на WinAPI.
Отключать пакеты я бы не стал.
ava
AndreyIQ | 27.03.2013, 11:51 #
А как насчет ASPack'а с ним даже думать не надо, но и файл уменьшится не на много
ava
Akella | 27.03.2013, 12:13 #
Цитата (AndreyIQ @  27.3.2013,  11:51 findReferencedText)
но и файл уменьшится не на много 


раза в 2 уменьшиться
ava
Poseidon | 27.03.2013, 13:54 #
Цитата (AndreyIQ @  27.3.2013,  11:51 findReferencedText)
А как насчет ASPack'а
Стоит помнить, что при запуске упакованного экзешника (любым упаковщиком, не только ASPack'ом) он весь распаковывается в память и висит там весь до закрытия программы, в то время как неупакованные экзешники зачастую подгружают в память необходимое, а то, что на данные момент не надо, сбрасывают в своп. Думаю что нынче на всех компьютерах размер HDD гораздо больше размера оперативки, поэтому экономить первое в ущерб второго по крайней мере не логично.
ava
Akella | 27.03.2013, 13:58 #
Но в то же время, начальники не спешат обновлять своим подчинённым железо. Зачем покупать новый, более мощный комп из-за 1-2 программ?
ava
Poseidon | 27.03.2013, 14:09 #
Цитата (Akella @  27.3.2013,  13:58 findReferencedText)
Зачем покупать новый, более мощный комп из-за 1-2 программ?
На старых компах так же размер HDD больше оперативной памяти. Где смысл в экономии допустим 50 МБ на винчестере в 40 ГБ, но при этом затратив 100 МБ в оперативке, размером 256 МБ? Даже на компьютерах 10 летней давности соотношение винчестер/оперативка было гораздо больше 50.
ava
Akella | 27.03.2013, 17:24 #
Цитата (Poseidon @  27.3.2013,  14:09 findReferencedText)
 Где смысл в экономии допустим 50 МБ на винчестере в 40 ГБ


ууууу.... батенька  smile  какой Вы расточительный
ava
DYUMON | 27.03.2013, 20:07 #
по поводу интернета. он не у всех летает. есть еще в этом мире места где даже 128 кб/с стоит бещеных денег.

ava
bems | 27.03.2013, 21:01 #
Сжатые экзешники не нужны, потому что винчестеры сейчас большие
Все остальные "узкие места" которые упоминают в этом контексте имеют более цивилизованные решения
ava
Vadим | 29.03.2013, 16:06 #
Печально, что дела с Delphi (размерами его exe-ника) обстоят так. Решил перевести весь проект на C#, вчера закончил. Спасибо всем за помощь!
ava
kami | 29.03.2013, 21:25 #
Цитата (Vadим @  29.3.2013,  16:06 findReferencedText)
Решил перевести весь проект на C#, вчера закончил. 

ну да, размером .NET фреймворка (и его требованиями к ОС) можно пренебречь.  smile 
ava
superVad | 30.03.2013, 02:11 #
Цитата (Vadим @  29.3.2013,  15:06 findReferencedText)
Решил перевести весь проект на C#, вчера закончил. Спасибо всем за помощь!

Чего уж там - переводи сразу еще и на яву и на кьюте - и посравнивай...
ava
northener | 30.03.2013, 02:26 #
Ну и на VB программа тоже будет тоньше smile
ava
Vadим | 30.03.2013, 15:01 #
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все.
Потом стал орать:
- Я знаю что ты делаешь!
- Это кончится тюрьмой.
- Я сам тебя сдам.
Потом дал совет писать на ассемблере. Я ассемблер знаю на уровне простых приложений. При написании больших программ на ассемблере теряюсь в коде мозги блин корявые у меня.   smile 
Так что пришлось выбирать более легкие пути, хотя я к такому не привык.  
Все уже написал на С#, отладил, работает на ура. Но все, же не спокойна моя душа.  smile 
ava
kami | 30.03.2013, 17:00 #
Цитата (Vadим @  30.3.2013,  15:01 findReferencedText)
Дал совет писать на ассемблере.

Стандартная фраза, занесенная во все FAQ, как ответ на вопрос "как сделать программу меньше". В общем - не очень тонкая ирония.
ava
Vadим | 30.03.2013, 18:57 #
Цитата (kami @ 30.3.2013,  17:00)
Цитата (Vadим @  30.3.2013,  15:01 \\"findReferencedText\\")
Дал совет писать на ассемблере.


Стандартная фраза, занесенная во все FAQ, как ответ на вопрос "как сделать программу меньше". В общем - не очень тонкая ирония.

Все так говорят, пиши на ассемблере и все. С такой интонацией, будто я один на свете ассемблер знаю плохо.  smile 
ava
bems | 30.03.2013, 19:22 #
Тебе намекают что уменьшение размера экзешника это не самоцель, и уменьшать его нужно только если есть весомые причины так трахаться
ava
Akella | 30.03.2013, 20:01 #
Цитата (Vadим @  30.3.2013,  15:01 findReferencedText)
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все. 

Потом стал орать: 

- Я знаю что ты делаешь!

- Это кончится тюрьмой.

- Я сам тебя сдам. 

 smile WTF?

später ergänzt:
http://www.vr-online.ru/blog/sverh-sverhma...i-crinkler-5058
http://kolmck.net/rindex.htm
Библиотека KOL позволяет разрабатывать чрезвычайно компактные GUI-приложения для Windows (начиная с приблизительно 14К без сжатия - при условии использования предлагаемой замены системных модулей system, sysinit и др.) 
ava
Vadим | 03.04.2013, 08:41 #
Цитата (Akella @ 30.3.2013,  20:01)
Цитата (Vadим @  30.3.2013,  15:01 \\"findReferencedText\\")
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все. 


Потом стал орать: 


- Я знаю что ты делаешь!


- Это кончится тюрьмой.


- Я сам тебя сдам. 


 smile WTF?



später ergänzt:

http://www.vr-online.ru/blog/sverh-sverhma...i-crinkler-5058

http://kolmck.net/rindex.htm

Библиотека KOL позволяет разрабатывать чрезвычайно компактные GUI-приложения для Windows (начиная с приблизительно 14К без сжатия - при условии использования предлагаемой замены системных модулей system, sysinit и др.)

Спасибо за совет, буду пробовать.  smile 
ava
Akella | 04.04.2013, 20:19 #
тут вот утилита, которая может показать размер модулей
http://delphitools.info/other-tools/mapfilestats/
ava
vinc2000 | 04.04.2013, 22:48 #
Используй UPX - сам пользуюсь! Exe в 4Mb сжимает до 2Mb - т.е. в 2 раза!
ava
northener | 05.04.2013, 01:19 #
Цитата (vinc2000 @  4.4.2013,  22:48 findReferencedText)
Используй UPX - сам пользуюсь!

Не надо такое советовать. Пользы ~0, а проблем лишних добавится.
ava
Poseidon | 05.04.2013, 08:30 #
Цитата (vinc2000 @  4.4.2013,  22:48 findReferencedText)
Используй UPX - сам пользуюсь! Exe в 4Mb сжимает до 2Mb - т.е. в 2 раза!
Про упаковщики я уже писал выше, польза от них только поверхностная. При экономии размера на HDD, мы транжирим оперативку. А оперативка у каждого из нас гораздо меньше чем HDD. Пользы 0!
ava
Akella | 05.04.2013, 10:28 #
При передаче файла через интернет польза есть.
ava
Poseidon | 05.04.2013, 11:22 #
Для передаче через интернет есть архиваторы, если уж так критично
ava
Vadим | 05.04.2013, 21:30 #
Цитата (Akella @ 4.4.2013,  20:19)
тут вот утилита, которая может показать размер модулей

http://delphitools.info/other-tools/mapfilestats/

Спасибо! smile
ava
kolesnle | 06.04.2013, 08:41 #
 smile Я так и не понял, почему это должно кончится тюрьмой?!
ava
superVad | 06.04.2013, 16:52 #
Цитата (kolesnle @  6.4.2013,  07:41 findReferencedText)
Я так и не понял, почему это должно кончится тюрьмой?!

Никто не понял.
ava
Poseidon | 07.04.2013, 20:20 #
Цитата (kolesnle @  6.4.2013,  08:41 findReferencedText)
Я так и не понял, почему это должно кончится тюрьмой?!
Лично я бы рассуждал так: Уменьшение размера файла критично только для передачи по сети, быстрой передачи. Быстрая передача по сети критична только для вирусов. Написание вирусов - уголовное преступление. Ну как-то так smile
ava
Akella | 07.04.2013, 22:28 #
Если exe файл хорошо упаковывается, например, обычным архиватором или программой для создания установочных дистрибутивов, то особой проблемы я не вижу.
ava
northener | 08.04.2013, 01:18 #
Цитата (Akella @  7.4.2013,  22:28 findReferencedText)
Если exe файл хорошо упаковывается, например, обычным архиватором или программой для создания установочных дистрибутивов, то особой проблемы я не вижу. 

А если ехе файл плохо упаковывается обычным архиватором, то я не вижу чем тут сможет помочь упакощик исполняемых файлов, кроме как навредить. smile
ava
Akella | 08.04.2013, 08:56 #
Как показывает практика, то весьма неплохо сжимается.
ava
Isaev | 03.05.2013, 13:40 #
А просто настроить параметра компилирования не пробовали?
Я тоже после D7 поставил XE2 и снёс после того как мой проект стал 20мб весить, поставил XE, а там он тоже 20мб  smile 
поигрался с настройками, вырезал всю инфу для отладки, оптимизацию включил и прочее, стало 4.4мб
Это конечно не 700кб которые давала D7, но всё же

А вообще конечно это всё ведёт к апокалипсису... как не новая версия, так размер в 2-3 раза больше.
Должны быть улучшения и оптимизация! и размер должен наоборот жаться.
Это всё криворукие программисты, которым лень что-то делать и они ссылаются на то, что нынче у всех куча оперативки и памяти на HDD и крутые видеокарты... потому пишут через ж
откройте современные программы на древнем компе(где в своё время все! приложения и игры летали без тормозов не зависимо от железа) и только мерцания при прорисовке интерфейса вас заставит забыть об данном софте.

Большинство отличнейших программ вполне укладываются в 300-500кб, именно они у меня на флешке на каждый день всегда с собой, когда софт весит 200мб, это уже наводит на мысли о криворукости создателя и стоит ли им пользоваться...

Возьмите к примеру Excel(это наверное единственный продукт от мелкомягких, который более-менее стабильно и без багов работает по сей день)
Для чего он столько весит никто не думал?
Там так много реализовано?
Вот допустим альтернатива в 1.5мб Spread32
тут есть всё, что нужно, кроме VBA
Остальное место VBA заняло?  smile  Просто кому-то надо учиться эффективно кисать код
ava
Poseidon | 05.05.2013, 21:37 #
Isaev, 20 мб экзешник? В релиз-режиме? Да ладно. Там какой-то редактор, поддерживающий кучу форматов и с массой наворотов? Сколько не работаю с Delphi, ни разу не сталкивался с такими проектами, что бы в экзешнике было 20 мб.

Цитата


Возьмите к примеру Excel(это наверное единственный продукт от мелкомягких, который более-менее стабильно и без багов работает по сей день)

Для чего он столько весит никто не думал?

Там так много реализовано?

 ты наверно реально не в курсе что может эксель. Если по твоему составить табличку и нарисовать график - это и все его возможности, то тебя ждет большое разочарование. У нас отдел аналитики и анализа такие вещи в экселе воротит, я когда увидел, не мог поверить что это обычный эксель, такой же как и у меня дома. Есть хорошая фраза, которую любят повторять наши гуру: «Возможности Excel ограничиваются только возможностями пользователя освоить возможности Excel». И я с ними полностью согласен. А что есть в Spread32? Да даже элементарную сводную таблицу там можно построить? 
ava
Isaev | 06.05.2013, 02:40 #
Цитата (Poseidon @  5.5.2013,  21:37 findReferencedText)
А что есть в Spread32? Да даже элементарную сводную таблицу там можно построить?  

Ну так написал же всё может, открой любой файл xls и посмотри, 1 в 1... кроме VBA.
в всё интересное у вас с его помощью и творят видимо, всё остальное можно
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden