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


Автор: Sarge 26.5.2003, 23:14
Давайте дружно напишем все способы уменьшения файла, потому что размер их очень большой!

Автор: Monty 26.5.2003, 23:34
Цитата(Sarge @ 26.5.2003, 23:14)
Давайте дружно напишем все способы уменьшения файла, потому что размер их очень большой!

biggrin.gif
1) Delphi + UPX = cool.gif ....... Must Die AsPack
2) Delphi + KOL & MCK = cool.gif ........ но тяжело, на асме будет на порядок тяжелее.
3) Мой способ: Пишем все что нужно в длл, а на Асме делаем программу которая реализовывает ее функции.
Одну программу я так и сделал, EXE(ASM) 10кб + DLL(Delphi) 90кб = 100кб smile.gif ..., а если сжать??

Автор: Sarge 28.5.2003, 20:39
Upx, если не ошибаюсь - простое досовское приложение, какими ключами надо пользоваться, чтобы сообщить Upx имя сжимаемого EXE? thumbs-up.gif

Автор: Song 28.5.2003, 20:52
Скажите а зечем его уменьшать? Место на диске кончилось? smile.gif))

Автор: Sarge 28.5.2003, 20:56
В нет пихать, там объём сильно ценится, а если 400кило-оо, хо-хо!

Автор: acp 28.5.2003, 21:55
Цитата
Upx, если не ошибаюсь - простое досовское приложение



Ага smile.gif Простое досовское приложение с 32-битным кодом.



Например

Цитата
какими ключами надо пользоваться

Код

upx ProgName.exe

Автор: Sarge 11.6.2003, 12:41
Я пугаюсь этой простотыsmile.gif

Автор: Sarge 11.6.2003, 12:56
ИЗУМИТЕЛЬНО!!!
Если используешь форму сжимает на 41% - biggrin.gif
Я даже придумал такую фичу (алгоритм) -

1) Оставляем в директории один UPX.EXE
2) Переименовываем его в UPX.COM
3) Создаём Start.Bat файл, и в него пишемс...
Код
UPX *.exe
pause

4) Пихаем в эту папку сжимаемый EXE файл
5) Запускаем Start.Bat

Автор: Monty 11.6.2003, 13:50
Цитата(Sarge @ 11.6.2003, 12:56)
ИЗУМИТЕЛЬНО!!!
Если используешь форму сжимает на 41% -  biggrin.gif
Я даже придумал такую фичу (алгоритм) -

1) Оставляем в директории один UPX.EXE
2) Переименовываем его в UPX.COM
3) Создаём Start.Bat файл, и в него пишемс...
   
Код
UPX *.exe
pause

4) Пихаем в эту папку сжимаемый EXE файл
5) Запускаем Start.Bat

biggrin.gif зачем переименовывать...
хочешь вышлю оболочку для него чтоб не париться?

Автор: altarasjuk 11.6.2003, 13:59
Цитата
хочешь вышлю оболочку для него чтоб не париться?

Вышли мне плиз.

Цитата
Давайте дружно напишем все способы уменьшения файла, потому что размер их очень большой!

Ну вообщем такой вариант:
Берём ResourceHacker и вырезаем всё что напихал в ресурс vcl (картинки и строчки), но мы их не используем... Кстати ресурсы с формами бить не надо........

Автор: Vit 13.6.2003, 00:04
А теперь охлождаем пыл по поводу UPX:

Как работает виндовое приложение - на время работы исполняемый код совершенно не защищён от выгрузки из виртуальной памяти, т.е. например вы загрузили Word, затем загрузили ещё штук 20 разных приложений... Всё что относилось к процессу Word'a плавно начало удаляться из оперативной памяти до лучших времён, т.е. до момента когда кто-то начнёт пользоваться Word'ом. А куда удаляется? Оказывается по-разному, переменные, данные и т.п. переносятся в виртуальную память, т.е. в файл подкачки, а вот исполняемый код никуда не переносится! - он просто удаляется из памяти, а когда он будет востребован вновь, винда перечитает его из файла на диске. Чтоб этот исполняемый файл на диске никуда не исчез, его система блокирует, т.е. как бы "превращает" его во временный дополнительный swap файл.

Теперь что мы имеем с упакованным UPS файлом: файл загружен в оперативную память, далее для нормальной работы этот файл должен быть разархивирован, и что примечательно обе копии теперь намертво (до завершения процесса) загружены в память! Таким образом сэкономив на дисковом пространстве, UPS файл требует для выполнения больший объем оперативной памяти.

Автор: Fantasist 13.6.2003, 18:24
Цитата
Теперь что мы имеем с упакованным UPS файлом:


biggrin.gif Классная опечатка. Кто не знает, UPS - это такая служба доставки. Запаковывают они, конечно, ничего, надежно, но файлов запакованных от них еще не видел. smile.gif (разве что вспомнить, что file переводиться как "папка/досье", "напильник"

Автор: acp 13.6.2003, 21:32

Vit'у и противникам упаковки исполняемых файлов...

А вот скажите, вы пользуетесь например тем же zip'ом? Наверное. А зачем, ведь распаковка занимает время. Да и оперативная память на это тратится. Так вот, от этого вы прекратите использовать zip? Вряд ли.

Я предвижу, другое ваше возражение. Вы скажете, "да, зипом я пользуюсь для хранения долговременных архивов, которые редко пакуются, редко распаковываются".
Но аналогично можно сказать и про исполняемые файлы.

И вот как вывод - паковать стоит только программы "утилитного" типа, которые достаточно редко запускаются, недолго висят в оперативке. Но вот как определить такие программы. Например, для себя, того же Word'а я бы причислил к категории утилит...

PS: да и вообще я так считаю (я это уже говорил, правда на другом форуме) - "утилиты" должны писаться на какой-либо высокоуровневой среде - тот же Дельфи. И можно их паковать. А "программы в оперативке" все поголовно должны писаться на ассемблере.

PPS: да, я пакую исполняемые файлы, ещё и из-за того, что они после этого ПРОСТО ПРИЯТНО ВЫГЛЯДЯТ. Чем меньше программа, тем более приятно она выглядит. Из-за этого же юзаю и KOL.

Автор: Song 14.6.2003, 01:24
Дело в том, что зипом мы пользуемся для хранения файлов. Файлы zip НЕ ЗАПУСКАЮТСЯ, поэтому-то мы и распаковываем их в нормальный размер. Однако с упакованными файлами, вы такой процедуры не производите.

Автор: Vit 14.6.2003, 16:56
Цитата(acp @ 13.6.2003, 12:32)

Vit'у и противникам упаковки исполняемых файлов...

А что я где-то говорил что я противник упаковки? Не надо мне приписывать то, чего я никогда не говорил. Я сам пользуюсь UPX иногда, собственно по той же причине: "красивее выглядит", единственное, зачем я написал свой предыдущий топик, это для того чтобы пролить немного света на вопрос КАК ИМЕННО РАБОТАЕТ UPX и показать НЕГАТИВНЫЕ стороны этого метода уменьшения файла. Прошу заметить что ЛЮБЫЕ методы уменьшения объёма файла имеют свои негативные стороны - будь-то повышение требований к ресурсам или увеличение времени на разработку. Исходя из этого на фоне хвалебных отзывов о UPX, я привёл данные о недостатках этого метода - ни больше не меньше, я никогда не говорил, что UPX не должны использовать или что это фигня: извините, я уже вышел из того возраста, когда мир чёрно-белый, а все программы/системы/алгоритмы деляться на "сакс" и "рулёз"...

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