| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > размер проги |
| Автор: Dph 1.4.2004, 08:36 |
| 1. От чего зависить размер проги? 2. Как уменшить размер проги? Хотя по моим статистикам Delphi: File-->New->Application EXE размер:300-400 Kb. C++ Builder: File-->New->Application EXE размер: 50 Kb Assembler: (invoke CreateWindow ) API EXE размер: 2Kb Но я не знаю C++ и ASM !!! Почему? |
| Автор: andrey_post 1.4.2004, 10:13 |
| Если хочешь максимально уменьшить размер проги, то не включай в компиляцию всякие библиотеки и компоненты. Но, потом возникает беда, когда запускаещь это мальнькую прогу на другом компе, то СЮРПРАЙС! Она не рабит!. Что бы программа работала, надо включать все библиотеки и компоненты в нее, но кое-кокие вещи можно и не засовывать. Оптимизируй код, зделай его проще. |
| Автор: Jey_k 1.4.2004, 11:00 |
| Dph В опциях проекта Делфи есть функции по управлению размерами. При максимальном уменьшении прога работает только на машинах с установленной Делфи версии не ниже чем та в которой разрабатывалась прога |
| Автор: DriveSoftware 2.4.2004, 08:57 |
| Dph Оптимальным вариантом думаю будет использование альтернативы VCL-у, это KOL + MCK, размер пустого проекта 26kb |
| Автор: Serggggg 2.4.2004, 10:00 |
| Также можно залезть в свойства компилятора и поотключать Debug-информацию и прочее. Стоит действительно отметить, что Delphi пихает все библиотеки и модули в один exe-файл в отличие от С++ и Visual Basic. У нас в институте таким образом пострадало немало студентов - приносит человек в последний день курсовую, написанную на С++, а о том, чтобы принести ещё и библиотеки, необходимые для её запуска не подумал. Что делать? Домой - за dll'ками. А если хочешь рационально использовать память - используй собственные dll, только используй динамическое их подгружениеб а не статическое. Dph, на счет Asm ты загнул, конечно. Я очень уважаю этот язык. И немало строк на нем довелось написать. Но наваять на Asm'e, например, клиента для БД под Windows - это... ну, скажем так, весьма круто. А вообще andrey_post абсолютно прав. Используй рациональные алгоритмы. Так что удачи в написании программ. |
| Автор: gepard 2.4.2004, 10:03 |
| Есть специальные проги для сжатия *.exe'шников. |
| Автор: SlaUr 2.4.2004, 10:14 | ||
gepard
Может надо было в отдельную тему но ладно . Я где-то читал что упакованые Exeшники это не очень хорошо т.к. при запуске такого файла в память загружается упакованый и еще распакованный код или я не прав (мне этот вопрос очень интересен) |
| Автор: Serggggg 2.4.2004, 10:25 |
| SlaUr, именно так. Это что-то типа архиватора. Только распаковка происходит уже непосредственно в RAM'e, а не в фоновом режиме с ProgressBar'ом, как у WinRar'a. На счет хорошо или не очень - не знаю - не пробовал ничего сжимать. А вот принцип именно такой. |
| Автор: gepard 2.4.2004, 11:13 | ||
Я просто констатировал факт. |
| Автор: SlaUr 2.4.2004, 15:08 |
| На счет упаковки-я делаю так : Если программа работает недолго - упаковываю Если программа работает в фоновом режиме или долго - не упаковываю. |
| Автор: serious 3.4.2004, 15:35 |
| WinAPI рулит, размер файла - 8 кило. Аналогичная вещь на масме - 2 кило, ну если постараться, то 1.5 |
| Автор: oleg1973 3.4.2004, 15:40 |
| писать на чистом API и не мучится |
| Автор: Tamerlann 3.4.2004, 17:53 |
| ИМХО писать на чистом API не каждый может с лёгкостью, а уж тем более когда дело касается больших проектов, а как правило именно их и пытаются ужать, они и без того здоровые. И вопрос: я не знал про то что запакованные проги хранят в памяти две свои копии - запакованнуи и распакованную, но раз так, то я понимаю и быстродействие (во время ее выполнения) тоже должно страдать серьёзно? А как она загружается, тоже дольше? Добавлено @ 17:55 Т.о. я считаю KOL и MCK - лучший выход в случае, когда нужно ужать программу. |
| Автор: зайка 3.4.2004, 18:51 | ||
А если прога межплатформенная? |
| Автор: oleg1973 3.4.2004, 21:02 |
| Tamerlann кто вам сказал про 2 копии? я видел в инете гдето бредовую статейку на эту тему возьмите исходники UPX да и посматрите |
| Автор: pascal 4.4.2004, 01:40 | ||
Ну чуть сложнее будет, а так никаких ограничений... |
| Автор: NiJazz 4.4.2004, 08:58 | ||
Просто в билдере по умалчанию установка есть не подклчать VCL в exe-файл. Из-за этого ехе меньше по размеру, но на машине без VCL эта программа работать не будет. В Delphi тоже можно так сделать: Project -> Options -> Packages -> Buld With Runtime Packages. Поставь галочку, если хочешь малые ехе -файлы. Некоторые простые окошки можно создавать с помощью CreateWindow. Это сложнее в плане программирования, но зато сэкономит место и работать будет быстрее. Удачи! |
| Автор: PILOT 4.4.2004, 13:43 | ||
Вот программа, exe которой весит 16кБ.
СУВ. ЗЫ. я иногда пользуюсь UPX, но упакованные этой утилитой программы вызывают пристальное внимание программ антивирусов (это выражается в очень долгом запуске программы при включенном сканировании всех запускаемых программ программой-антивирусом). |
| Автор: SlaUr 8.4.2004, 08:37 |
| насчет упаковки:может правда держание в памяти нераспакованной версии программы это только миф. Вот провел тестик Хотя занимаемую программой память я смотрел просто в XP (ctrl-alt-del\процессы) и тест возможно не отражает точные факты. Программа/Упакованная версия/неупакованная версия Несложный проект /2952 / 2920 Только форма без vcl /1940/1900 т.е. разница все же есть но не существенная. p.s.упаковывал Aspackом |
| Автор: -=::BlackCat::=- 6.6.2004, 14:55 | ||||
что ты под этим подразумеваешь???? |
| Автор: Medved 6.6.2004, 17:00 |
| Вот, прочитай эту статью, и не терзай себя по напрасну http://russian.joelonsoftware.com/Articles/StrategyLetterIV.html Но проги желательно сжимать http://www.pegas.mylawsite.net/soft/utils.htm |
| Автор: Albinos_x 6.6.2004, 23:10 |
| Делай выбор между производительностью и объемом программы. Побольше пользуйся API, по меньше используй картинки вставленные в программу, не включай инфоверсию и не забывай про оптимизацию кода при завершении проекта. |
| Автор: -=::BlackCat::=- 6.6.2004, 23:27 |
| по второй сылке фигня какая-то открывается |
| Автор: Medved 6.6.2004, 23:49 | ||
Не могли бы Вы обяснить поподробнее, что Вы подразумеваете под словом "фигня"? |
| Автор: Albinos_x 7.6.2004, 19:21 | ||
???? |
| Автор: -=::BlackCat::=- 8.6.2004, 20:51 |
| http://www.web1000.com/ Hostingservice |
| Автор: Monty 8.6.2004, 21:23 | ||
Pegas, хоть ж*пу рви, а не открывается |
| Автор: Enflout 9.6.2004, 13:41 |
| А у меня открывается |
| Автор: Guest 9.6.2004, 14:05 |
| А мне прокся говорит Ая-Яй |
| Автор: Dr.Death 9.6.2004, 14:11 |
| Если дело в размере, то я использую Aspack |
| Автор: Monty 9.6.2004, 16:13 |
| То что уходив в публику я не пакую взломанными программами |
| Автор: YURIC 11.6.2004, 11:18 |
| Юзай, размер проги уменьшается ощутимо http://brsk.com.ru/cgi-bin/brskpub/pub.cgi?a=w&ID=412 |
| Автор: devmstr 11.6.2004, 14:47 |
| WinApi rulez. Если несколько прог, то можешь поставлять в месте с программой библитотеки -200-300 KB.[s] Исполняемые файлы, тогда весят очень мало. Если две - три проги - экономия на лицо. При поставке программы желательно использовать стандартный InstallShild (но не тот что поставляеться с 7 Delphi, там сжатия вообще почти нет, скорее наоборот). Он прекрасно знает слабые места Delphi и очень хорошо сжимает проги. |
| Автор: devmstr 11.6.2004, 15:31 |
| WinApi Rulez |
| Автор: FreeNUX 12.6.2004, 17:12 |
| Легче просто большие проекты на С писать, ну и конечно использовать WinApi функции. |
| Автор: Cheba 12.6.2004, 18:32 | ||
|
| Автор: Medved 14.6.2004, 13:37 | ||
Рулез, рулез, я согласен, да только пока вы напишите 1 прогу на WinApi, я напишу уже 10 средствами Delphi. В итоге вы напишите 1 маленькую программу, и получите за нее ну скажем 2000$, а я напишу 10 но больших, и продам по той же цене (итого 2000$x10 = 20 000$). Да WinAPi это круто, я согласен.... |
| Автор: oleg1973 14.6.2004, 15:17 | ||
откуда такие данные? или имеется ввиду "набросать на форму" ? |
| Автор: Medved 15.6.2004, 06:38 |
| Из личного опыта. Я имею ввиду чистый WinApi. Т.е. написать прогу используя только WinApi, и ничего более. |
| Автор: oleg1973 15.6.2004, 09:36 |
| ну я в дельфи не силен к примеру на апи CreateFile.... и так далее открываем файл ReadFile .... читаем в дельфи что будут коренные отличия? |
| Автор: Medved 15.6.2004, 10:59 |
| Это с первого взгляду кажется, что отличий нет. А вот если стоит задача написать серьезное трехзвенное приложение, корпоративного уровня, которое будет работать с удаленной БД.... Я смотрю на этот вопрос с точки зрения написания больших и мощных информационных систем, а не ваяния различных утилиток. |
| Автор: stab 15.6.2004, 21:55 | ||||||
если постараться то на VC++ можно свести размер пустого exe к 1.5 Кб, но это опять же писать на WinAPI
которая тут же увеличивает размер приложения на 40 Кб ... грустно з.ы. за офтоп ногами не бить... накипело Добавлено @ 21:59 ... использование любого класса +100 Кб |
| Автор: S.A.P. 19.6.2004, 13:59 |
| А по конкретнее? Никаких функций по управлению размерами я не нашел. Как отключить лишние модули? |
| Автор: S.A.P. 19.6.2004, 14:10 | ||
А где я могу отключить лишние модули? В настройках ничего не нашел. |
| Автор: stab 20.6.2004, 22:28 |
| Perchilla, на сколько я понял разговор про это: Project -> Options -> Packages, выставить галочку "Build with runtime packages". |
| Автор: ~FoX~ 21.6.2004, 14:55 | ||
| Хех А я вообще не понимаю о чем разговор. Ну да проги не маленькие, но с нынешними средствами коммуникаций, размерами винтов, всяких флешек и т.д. По моему это уж совсем не принципиально и тем более не критично! Ну пожалуста, хотите маленькую прогу с большим гемороем? Берите АСМ и кропайте, берити Си и используйте только АПИ. Обсалютно согласен с пегасом:
Хотя и от АПИ отказываться целиком не вариант! |