IPB

Добро пожаловать, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> StripReloc 1.13, уменьшаем размер .EXE файла
-=CHE@TER=-
May 29 2007, 07:35
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,197
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 286 раз(а)



Наверное, все уже ей пользуются, но всё-же...

Есть такая программа от автора знаменитого InnoSetup: StripReloc 1.13.
Она убирает из .EXE файла relocation секцию (".reloc"), тем самым уменьшает его размер.
Для программ на Delphi очень архиважная и полезная вещь - уменьшить размер готового .EXE'шника (полезно сделать перед упаковкой UPX'ом).
Подробнее читайте по приведённой выше ссылке на странице программы.

Программа на Delphi 7:
CODE
Begin
End.

.EXE занимает - 13824 байта.
После того, как по ней StripReloc проехался - 12800
Итого: чистый 1 Кб "довеска".
Естественно, что чем больше программа, тем и "довесок" будет больше.

Я использую так:
StripReloc.exe /B /C filename.exe
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xplorer
Jun 4 2007, 16:42
Сообщение #2


Advanced Member
***

Группа: CTPAX-X
Сообщений: 52
Регистрация: 4-February 08
Пользователь №: 8
Спасибо сказали: 30 раз(а)



QUOTE(-=CHE@TER=- @ May 29 2007, 11:35 AM) *
Она убирает из .EXE файла relocation секцию (".reloc"), тем самым уменьшает его размер.
Для программ на Delphi очень архиважная и полезная вещь - уменьшить размер готового .EXE'шника (полезно сделать перед упаковкой UPX'ом).

UPX по умолчанию для PE EXE-файлов сам удаляет релоки.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jun 4 2007, 20:55
Сообщение #3


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,197
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 286 раз(а)



QUOTE(Xplorer @ Jun 4 2007, 04:42 PM) *
UPX по умолчанию для PE EXE-файлов сам удаляет релоки.
Хех, не тут-то было.
Такая программа на Delphi 7:
CODE
Begin
End.

Компилируем. Получаем .EXE файл размером 13824 байт.
1) Натравливаем на него StripReloc и пакуем/распаковываем при помощи UPX 3.00.
file.exe (13824)
StripReloc.exe /B /C file.exe (12800)
upx -9 file.exe (8704)
upx -d file.exe (12800)
Получаем те же 12800 байт.

2) Поступаем по другому - не натравливаем на него StripReloc, а сразу жмём:
file.exe (13824)
upx -9 file.exe (8704)
upx -d file.exe (13824)

Т.е. Reloc'и то он стрипает (скорее, зануляет), но вот размер остаётся тем же. Будет ли размер такой же или выростет на больших файлах - не знаю (сдаётся мне он вообще в упакованный файл ничего об Reloc не пишет) и ещё вопрос - будет ли он больше в оперативной памяти занимать или нет? И всё-же при распакованном файле разница чувствуется (*улыбается*).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 17th July 2019 - 22:58