Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Оптимизация размера программ (EXE)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10

Открыть новую тему     Написать ответ в эту тему

vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разбираясь с темой наталкивался на разные документы и исходники. Решил обобщить все в одном топике, так как постоянно встречаю вопросы об оптимизации то там, то сям.
Ниже будут ссылки на документы и файлы.
 
Добавлено
самая лучшая статья по оптимизации для пишущих на VC++ 6,7:
http://www.rsdn.ru/article/cpp/crt.xml
или она же:
http://www.rsdn.ru/article/?51
статья на английском - автор Matt Pietrek - опять для MS VC++ :
"Reduce EXE and DLL Size with LIBCTINY.LIB"
http://msdn.microsoft.com/msdnmag/issues/01/01/hood/default.aspx
с исходниками
 
 

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 16:29 01-11-2004 | Исправлено: vito333, 13:52 29-04-2005
redp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а смысл какой ? по скорости оптимизировать - тут да, очень даже имеет смысл
по минимизации используемой памяти - опять же да
а по размеру кода - разве только когда exploit пишешь и надо в строго ограниченный буфер уместиться. когда такая оптимизация еще нужна ?

Всего записей: 514 | Зарегистр. 16-06-2003 | Отправлено: 17:31 01-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
redp
ты извини, но спорить на тему смысла - бессмысленно ))), потому не буду.
 
 
Добавлено
http://y0da.cjb.net/
в секции Code Snippets - примеры крошечных файлов как для VC++, так и для Дельфи
с исходниками
 
Добавлено
http://www.xtreeme.prv.pl/
дом. страница лучшего упаковщика маленьких (до ~80-100 кб) EXE файлов - FSG.
Он выигрывает у всех за счет крошечного модуля распаковки - всего 158 байт.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 17:57 01-11-2004 | Исправлено: vito333, 18:07 01-11-2004
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://www.uinc.ru/articles/28/index.shtml

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 18:27 01-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiseAlex
точно, не успел я запостить )
тема:
Написание экстра-маленьких Win32 приложений на С++ от 1 КБ используя лишь API, на примере программы Windows Hider

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 18:50 01-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а если паковать ЕХЕ более или менее крупный(>100кб) и стоит задача ужать максимально или как нибудь не в лоб, то наиболее мощный по настройкам - PEcompact2 от Джереми Коллэйка, он, кстати, может легко сделать UPX по степени сжатия ЕХЕ при использовании плагина (в комплекте) c алгоритмом lzma. Правда скорость распаковки тогда чуть ниже, но выигрыш в размере бывает очень значительным.
Мне кажется, для Дельфей - отличный пакер. )

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 16:25 04-11-2004
redp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vito333
кхе-кхе, выигрыш в чом ? в памяти то код занимает после распаковки столько же места плюс накладные расходы на распаковку еще

Всего записей: 514 | Зарегистр. 16-06-2003 | Отправлено: 17:37 04-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
понятно в чом - только в размере файла, причем я не призываю огульно сжимать файлы - в этом тоже голова нужна. Известно же, что файлы чаще лучше не сжимать, чем сжимать, но знать об этом надо.
И памяти такая программа занимает больше. Здесь на форуме это уже обсуждалось.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 17:49 04-11-2004 | Исправлено: vito333, 17:51 04-11-2004
Varenik



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
redp
Выигрыш в скорости загрузки программы: процессор всегда распакует файл быстрее, чем он может считываться с диска. паковщики типа UPX оставляют ~ 30% от воначального размера

----------
Если нравится, считайте, что получилось…

Всего записей: 1766 | Зарегистр. 21-07-2001 | Отправлено: 06:52 05-11-2004
MoKC0DeR



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Varenik
и на этом все плюсы заканчиваются. Остаются одни минусы.

Всего записей: 510 | Зарегистр. 31-03-2004 | Отправлено: 09:03 05-11-2004
aar



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, возник такой вопрос. Есть программа, написанная на Perl. Затем утилитой perlapp из нее был сделан исполняемый exe-файл, куда включена perl56.dll (платформа Windows). Размер получился около 700 kb. Каким упаковщиком лучше воспользоваться, чтобы минимизировать размер exe-файла? Ну и, как добавок, с защитой от отладчика и тому подобных вещей. Но это опционально

----------
* * *

Всего записей: 7080 | Зарегистр. 20-11-2003 | Отправлено: 09:22 05-11-2004
JustAMaaan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если программа под Win32 большая и ее предполагается запускать больше, чем в одном экземпляре, то нужно сильно подумать, стоит ли ее вообще сжимать. Если не залезать в дебри, то код несжатого EXE, запущенного дважды, отображается в физическую память всего один раз, а вот сжатый - сначала выделяет себе столько памяти, сколько весил оригинал и распаковывает себя уже туда. Точно такой же эффект происходит и с временем запуска: второй экзампляр несжатой программы стартует практически мгновенно, а вот сжатая программа распаковывается всегда.

Всего записей: 221 | Зарегистр. 17-09-2004 | Отправлено: 09:31 05-11-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JustAMaaan
Это уже писалось на форуме, просто есть случаи когда надо упаковать программу, при этом не планируется ее запускать несколько раз.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:39 05-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aar
по честному - только фриварный UPX, а по всем нужным тебе фичам самый лучший - PEcompact2 - и жмет превосходно (в зависимости от используемого алгоритма - можно побыстрее разжимающийся, можно посильнее сжатый), и есть даже какой-то плагин антидебаговый в комплекте, есть также плагин парольный и еще чего-то.
Но он шароварный. Но есть в Варезнике , если твой высокий моральный облик тебе позволит .
 
Кстати, о dll.
Там же где и PEcompact2 (Collake Software) есть превосходная шароварная утилита Pebundle - позволяет лепить dll к ЕХЕ, причем настроек тоже туева хуча - можно сделать так, что длл не будет распаковываться на диск, а будет только в памяти. Причем полученный ЕХЕ может быть сразу сжат.
Я делал такую вещь - к своему крошечному редактору (оболочка на ричедит) лепил ричедитовую ДЛЛ, а затем все это сжал PEcompact2. Получилось недурно .

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 11:20 05-11-2004
aar



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vito333
Благодарю  
 
Лекарство на PECompact2 уже ищу. Но вот такой вопрос: как нибудь можно будет определить, чем произведено сжатие? Просто в этих делах не спец, было как-то знакомство с ассемблером и с отладчиком, но не до такой степени.
 

Цитата:
Pebundle  
Попробую. В принципе, возможно сделать exe-файл с помощью perlapp и не включать в него dll, а просто распространять вместе с exe.
 
 
 
Добавлено
Pebundle нашел PEBundle.v3.20.Cracked-SSG.rar, буду мудрить.


----------
* * *

Всего записей: 7080 | Зарегистр. 20-11-2003 | Отправлено: 11:33 05-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aar
я брал по ссылкам в Варезнике
 
а PEcompact2? да и любой (практически) пакер определяется прогой PEid. Я ей постоянно пользуюсь. Чтобы не определялось - надо чего-то мудрить.
 
Добавлено
кстати, топик не только о сжатии ЕХЕ, но и об оптимизации при программировании.
в качестве примера использования и того и другого - маленький текстовый редактор:
http://vito.rbcmail.ru/Mark.zip  
архив ~23 кб  
вирусов нет - гарантирую, а то говорят, нортон ругается.
программа оптимизирована по размеру при программировании и сжата ЕХЕ-пакером (что оправдано в этом случае).

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 11:55 05-11-2004 | Исправлено: vito333, 06:29 15-11-2004
aar



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vito333

Цитата:
http://vito.rbcmail.ru/Mark2.zip    
архив ~23 кб  
 
В памяти полтора метра
 
Сжимал PECompact'ом свою программу. Выигрыш получился меньше 10%, а вот скорость запуска возросла раза в два. Врядли возможен больший выигрыш...


----------
* * *

Всего записей: 7080 | Зарегистр. 20-11-2003 | Отправлено: 13:00 10-11-2004
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASPack хорошо жмет и нормально работает.
У меня 2Мб дельфи-ехе превращается в 350кб и работает замечательно.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 14:39 10-11-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aar

Цитата:
В памяти полтора метра  
 
Сжимал PECompact'ом свою программу. Выигрыш получился меньше 10%, а вот скорость запуска возросла раза в два.

Ну у меня она в памяти 3100 весит, и это без открытого файла, просто надо учитывать загруженные либы.
Я сжимал свою упх и фсг, выигрыш всегда больше 50% и скорость открытия больше. Где то ты не так делал

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:57 11-11-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aar
у тебя изначально файл уже такой - ты писал, что это конвертнутый ЕХЕ.
 
а полтора метра - чего-то мало на самом деле. Должно быть 3-4 мега. Но память - это отдельный разговор, не для этого топика. Можешь свернуть прогу, например ...

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 11:10 11-11-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Оптимизация размера программ (EXE)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru