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


Автор: Vadим 22.3.2013, 17: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


Автор: northener 22.3.2013, 19:40
Цитата(Vadим @  22.3.2013,  17:48 Найти цитируемый пост)
Слышал, что можно хорошо выиграть в размере, если настроить пакеты.

ЕХЕ-шник действительно уменьшится. Но придется вместе с ним таскать и пакеты. А это в сумме будет заметно больше весить.

Автор: DYUMON 22.3.2013, 20:51
если используешь пару функций то перетащи их в отдельный модуль и отключи те модули откуда они smile

Автор: Akella 23.3.2013, 15:16
Пакеты можно отдать пользователю 1 раз, а потом только программу пересылать

Автор: Vadим 23.3.2013, 18:13
Цитата(DYUMON @ 22.3.2013,  20:51)
если используешь пару функций то перетащи их в отдельный модуль и отключи те модули откуда они smile

Я пытался много раз, но все заканчивалось крахом криворукий короче!  smile 

Автор: DYUMON 27.3.2013, 06:20
а чего парится по поводу размеров  программы? я тут скачивал  SQLite Expert  она delphi сделан. У него exe сам 69,7 МБ  весит. Поскольку автор в него и скины напихал и отчеты и всего всего. И ниче качают же и пользуются. Мне когда размер нужен я в 7 версии пишу. А когда уж совсем размер критичен то можно на KOL написать.

Автор: Poseidon 27.3.2013, 10:38
В наше время, когда космические корабли скорости передачи данных позволяют переслать 100 МБ менее чем за минуту, вы замарачиваетесь на размере программы? Сколько она сейчас у вас? 10 МБ? 20? Сколько вы хотите? По-моему будет больше геморроя, чем выгоды. Но если уж совсем нужно-нужно, то можно:
  • Вместо VCL использовать KOL
  • Писать на WinAPI.
Отключать пакеты я бы не стал.

Автор: AndreyIQ 27.3.2013, 11:51
А как насчет ASPack'а с ним даже думать не надо, но и файл уменьшится не на много

Автор: Akella 27.3.2013, 12:13
Цитата(AndreyIQ @  27.3.2013,  11:51 Найти цитируемый пост)
но и файл уменьшится не на много 


раза в 2 уменьшиться

Автор: Poseidon 27.3.2013, 13:54
Цитата(AndreyIQ @  27.3.2013,  11:51 Найти цитируемый пост)
А как насчет ASPack'а
Стоит помнить, что при запуске упакованного экзешника (любым упаковщиком, не только ASPack'ом) он весь распаковывается в память и висит там весь до закрытия программы, в то время как неупакованные экзешники зачастую подгружают в память необходимое, а то, что на данные момент не надо, сбрасывают в своп. Думаю что нынче на всех компьютерах размер HDD гораздо больше размера оперативки, поэтому экономить первое в ущерб второго по крайней мере не логично.

Автор: Akella 27.3.2013, 13:58
Но в то же время, начальники не спешат обновлять своим подчинённым железо. Зачем покупать новый, более мощный комп из-за 1-2 программ?

Автор: Poseidon 27.3.2013, 14:09
Цитата(Akella @  27.3.2013,  13:58 Найти цитируемый пост)
Зачем покупать новый, более мощный комп из-за 1-2 программ?
На старых компах так же размер HDD больше оперативной памяти. Где смысл в экономии допустим 50 МБ на винчестере в 40 ГБ, но при этом затратив 100 МБ в оперативке, размером 256 МБ? Даже на компьютерах 10 летней давности соотношение винчестер/оперативка было гораздо больше 50.

Автор: Akella 27.3.2013, 17:24
Цитата(Poseidon @  27.3.2013,  14:09 Найти цитируемый пост)
 Где смысл в экономии допустим 50 МБ на винчестере в 40 ГБ


ууууу.... батенька  smile  какой Вы расточительный

Автор: DYUMON 27.3.2013, 20:07
по поводу интернета. он не у всех летает. есть еще в этом мире места где даже 128 кб/с стоит бещеных денег.


Автор: bems 27.3.2013, 21:01
Сжатые экзешники не нужны, потому что винчестеры сейчас большие
Все остальные "узкие места" которые упоминают в этом контексте имеют более цивилизованные решения

Автор: Vadим 29.3.2013, 16:06
Печально, что дела с Delphi (размерами его exe-ника) обстоят так. Решил перевести весь проект на C#, вчера закончил. Спасибо всем за помощь!

Автор: kami 29.3.2013, 21:25
Цитата(Vadим @  29.3.2013,  16:06 Найти цитируемый пост)
Решил перевести весь проект на C#, вчера закончил. 

ну да, размером .NET фреймворка (и его требованиями к ОС) можно пренебречь.  smile 

Автор: superVad 30.3.2013, 02:11
Цитата(Vadим @  29.3.2013,  15:06 Найти цитируемый пост)
Решил перевести весь проект на C#, вчера закончил. Спасибо всем за помощь!

Чего уж там - переводи сразу еще и на яву и на кьюте - и посравнивай...

Автор: northener 30.3.2013, 02:26
Ну и на VB программа тоже будет тоньше smile

Автор: Vadим 30.3.2013, 15:01
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все. 
Потом стал орать: 
- Я знаю что ты делаешь!
- Это кончится тюрьмой.
- Я сам тебя сдам. 
Думал, дай подойду, спрошу. У него стаж работы 26 лет, где я еще такого найду. В общем отзывчивый 
препод как он говорил главное водку не пить  smile
Дал совет писать на ассемблере. Я ассемблер знаю на уровне простых приложений. При написании больших программ на ассемблере теряюсь в коде мозги блин корявые у меня.   smile 
Так что пришлось выбирать более легкие пути, хотя я к такому не привык.  
Проект написал на С#, отладил, работает на ура. Но все, же не спокойна моя душа.  smile

Добавлено через 8 минут и 46 секунд
Все что я пишу, пишу для себя и ради собственного любопытства! 

Автор: kami 30.3.2013, 17:00
Цитата(Vadим @  30.3.2013,  15:01 Найти цитируемый пост)
Дал совет писать на ассемблере.

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

Автор: Vadим 30.3.2013, 18:57
Цитата(kami @ 30.3.2013,  17:00)
Цитата(Vadим @  30.3.2013,  15:01 Найти цитируемый пост)
Дал совет писать на ассемблере.

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

Все так говорят, пиши на ассемблере и все. С такой интонацией, будто я один на свете ассемблер знаю плохо.  smile 

Автор: bems 30.3.2013, 19:22
Тебе намекают что уменьшение размера экзешника это не самоцель, и уменьшать его нужно только если есть весомые причины так трахаться

Автор: Akella 30.3.2013, 20:01
Цитата(Vadим @  30.3.2013,  15:01 Найти цитируемый пост)
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все. 
Потом стал орать: 
- Я знаю что ты делаешь!
- Это кончится тюрьмой.
- Я сам тебя сдам. 

 smile WTF?

Добавлено через 37 секунд
http://www.vr-online.ru/blog/sverh-sverhmalye-prilozhenija-na-delphi-crinkler-5058
http://kolmck.net/rindex.htm
Библиотека KOL позволяет разрабатывать чрезвычайно компактные GUI-приложения для Windows (начиная с приблизительно 14К без сжатия - при условии использования предлагаемой замены системных модулей system, sysinit и др.) 

Автор: Vadим 3.4.2013, 08:41
Цитата(Akella @ 30.3.2013,  20:01)
Цитата(Vadим @  30.3.2013,  15:01 Найти цитируемый пост)
Подошел я к преподу рассказал ситуацию, он на меня посмотрел испуганными глазами и все. 
Потом стал орать: 
- Я знаю что ты делаешь!
- Это кончится тюрьмой.
- Я сам тебя сдам. 

 smile WTF?

Добавлено @ 20:02
http://www.vr-online.ru/blog/sverh-sverhmalye-prilozhenija-na-delphi-crinkler-5058
http://kolmck.net/rindex.htm
Библиотека KOL позволяет разрабатывать чрезвычайно компактные GUI-приложения для Windows (начиная с приблизительно 14К без сжатия - при условии использования предлагаемой замены системных модулей system, sysinit и др.)

Спасибо за совет, буду пробовать.  smile 

Автор: Akella 4.4.2013, 20:19
тут вот утилита, которая может показать размер модулей
http://delphitools.info/other-tools/mapfilestats/

Автор: vinc2000 4.4.2013, 22:48
Используй UPX - сам пользуюсь! Exe в 4Mb сжимает до 2Mb - т.е. в 2 раза! (Просто перетащи exe на ярлык upx)

Автор: northener 5.4.2013, 01:19
Цитата(vinc2000 @  4.4.2013,  22:48 Найти цитируемый пост)
Используй UPX - сам пользуюсь!

Не надо такое советовать. Пользы ~0, а проблем лишних добавится.

Автор: Poseidon 5.4.2013, 08:30
Цитата(vinc2000 @  4.4.2013,  22:48 Найти цитируемый пост)
Используй UPX - сам пользуюсь! Exe в 4Mb сжимает до 2Mb - т.е. в 2 раза!
Про упаковщики я уже писал выше, польза от них только поверхностная. При экономии размера на HDD, мы транжирим оперативку. А оперативка у каждого из нас гораздо меньше чем HDD. Пользы 0!

Автор: Akella 5.4.2013, 10:28
При передаче файла через интернет польза есть.

Автор: Poseidon 5.4.2013, 11:22
Для передаче через интернет есть архиваторы, если уж так критично

Автор: Vadим 5.4.2013, 21:30
Цитата(Akella @ 4.4.2013,  20:19)
тут вот утилита, которая может показать размер модулей
http://delphitools.info/other-tools/mapfilestats/

Спасибо! smile

Добавлено через 10 минут и 21 секунду
Цитата(Poseidon @ 5.4.2013,  08:30)
Цитата(vinc2000 @  4.4.2013,  22:48 Найти цитируемый пост)
Используй UPX - сам пользуюсь! Exe в 4Mb сжимает до 2Mb - т.е. в 2 раза!
Про упаковщики я уже писал выше, польза от них только поверхностная. При экономии размера на HDD, мы транжирим оперативку. А оперативка у каждого из нас гораздо меньше чем HDD. Пользы 0!

Согласен с вами, давненько я читал о плюсах и минусах упаковщика.

Добавлено через 14 минут и 36 секунд
Спасибо всем! smile

Автор: kolesnle 6.4.2013, 08:41
 smile Я так и не понял, почему это должно кончится тюрьмой?!

Автор: superVad 6.4.2013, 16:52
Цитата(kolesnle @  6.4.2013,  07:41 Найти цитируемый пост)
Я так и не понял, почему это должно кончится тюрьмой?!

Никто не понял.

Автор: Poseidon 7.4.2013, 20:20
Цитата(kolesnle @  6.4.2013,  08:41 Найти цитируемый пост)
Я так и не понял, почему это должно кончится тюрьмой?!
Лично я бы рассуждал так: Уменьшение размера файла критично только для передачи по сети, быстрой передачи. Быстрая передача по сети критична только для вирусов. Написание вирусов - уголовное преступление. Ну как-то так smile

Автор: Akella 7.4.2013, 22:28
Если exe файл хорошо упаковывается, например, обычным архиватором или программой для создания установочных дистрибутивов, то особой проблемы я не вижу.

Автор: northener 8.4.2013, 01:18
Цитата(Akella @  7.4.2013,  22:28 Найти цитируемый пост)
Если exe файл хорошо упаковывается, например, обычным архиватором или программой для создания установочных дистрибутивов, то особой проблемы я не вижу. 

А если ехе файл плохо упаковывается обычным архиватором, то я не вижу чем тут сможет помочь упакощик исполняемых файлов, кроме как навредить. smile
Впрочем если исполняемый файл хорошо упаковывается, я тоже не вижу никакой пользы, кроме вреда. smile

Автор: Akella 8.4.2013, 08:56
Как показывает практика, то весьма неплохо сжимается.

Автор: Isaev 3.5.2013, 13:40
А просто настроить параметра компилирования не пробовали?
Я тоже после D7 поставил XE2 и снёс после того как мой проект стал 20мб весить, поставил XE, а там он тоже 20мб  smile 
поигрался с настройками, вырезал всю инфу для отладки, оптимизацию включил и прочее, стало 4.4мб
Это конечно не 700кб которые давала D7, но всё же

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

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

Возьмите к примеру Excel(это наверное единственный продукт от мелкомягких, который более-менее стабильно и без багов работает по сей день)
Для чего он столько весит никто не думал?
Там так много реализовано?
Вот допустим альтернатива в 1.5мб http://www.byedesign.co.uk/
тут есть всё, что нужно, кроме VBA
Остальное место VBA заняло?  smile  Просто кому-то надо учиться эффективно кисать код

Автор: Poseidon 5.5.2013, 21:37
Isaev, 20 мб экзешник? В релиз-режиме? Да ладно. Там какой-то редактор, поддерживающий кучу форматов и с массой наворотов? Сколько не работаю с Delphi, ни разу не сталкивался с такими проектами, что бы в экзешнике было 20 мб. 

Цитата

Возьмите к примеру Excel(это наверное единственный продукт от мелкомягких, который более-менее стабильно и без багов работает по сей день)
Для чего он столько весит никто не думал?
Там так много реализовано?
 ты наверно реально не в курсе что может эксель. Если по твоему составить табличку и нарисовать график - это и все его возможности, то тебя ждет большое разочарование. У нас отдел аналитики и анализа такие вещи в экселе воротит, я когда увидел, не мог поверить что это обычный эксель, такой же как и у меня дома. Есть хорошая фраза, которую любят повторять наши гуру: «Возможности Excel ограничиваются только возможностями пользователя освоить возможности Excel». И я с ними полностью согласен. А что есть в Spread32? Да даже элементарную сводную таблицу там можно построить? 

Автор: Isaev 6.5.2013, 02:40
Цитата(Poseidon @  5.5.2013,  21:37 Найти цитируемый пост)
20 мб экзешник? В релиз-режиме? Да ладно.

Цитата(Isaev @  3.5.2013,  13:40 Найти цитируемый пост)
поигрался с настройками, вырезал всю инфу для отладки...

Откуда она в релиз-режиме?

Цитата(Poseidon @  5.5.2013,  21:37 Найти цитируемый пост)
 ты наверно реально не в курсе что может эксель. 

в курсе, потому и говорю, что удачный продукт, чего не скажешь о большинстве их остальных детищ.

Цитата(Poseidon @  5.5.2013,  21:37 Найти цитируемый пост)
А что есть в Spread32? Да даже элементарную сводную таблицу там можно построить? 

Ну так написал же всё может, открой любой файл xls и посмотри, 1 в 1... кроме VBA.
в всё интересное у вас с его помощью и творят видимо, а всё остальное можно
Это же не какой-то левый табличный редактор в своём чудо-формате, который никто не понимает кроме него, а вьювер и редактор стандартных excel-файлов. Microsoft их даже партнёрами сделали своими, после выхода этого продукта и прежде, чем слепо критиковать, можно было хоть глянуть ;)

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