Ru-Board.club
← Вернуться в раздел «Программы»

» EXE, DLL, OCX, PE-распаковка|упаковка|pack|unpack|decrypt

Автор: ymy
Дата сообщения: 18.12.2002 23:48
Ну например
Хелен Кастер Основы NT и NTFS
Jeffrey Richter Programming Applications for MSWindows
David A. Solomon Mark E. Russinovich Inside for Windows 2000


Цитата:
блокировка намапленных (или открытых иным способом) файлов осуществляется на одном уровне с доступом к винту по секторам

Она осуществояется на том же уровне что и блокировка pagefile.sys
Конечно это относится только к запускаемым PEфайлам, а не ко всем открытым, но есть возможность даже обычнычные файлы проецировать на регион адресного пространства. Соответственно ещё один способ проверки замапить какой-нибудь большой файл и посмотреть на изменения баланса.

Вообщем не знаю чему тут можно не верить, по-моему это самый правильный и оптимальный вариант работы системы.
Автор: vito333
Дата сообщения: 19.12.2002 07:37
в общем основня проблема при использовании выходит - большее потребление памяти - так они (паковщики) чего - не освобождают ненужные куски памяти после распаковки?

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

Добавлено
загрузку цпу - тоже отбрасываем - т.к. она получается возможна только очень короткое время - при распаковке ...

Добавлено
осталось померять память и сделать выводы (может и придется наплевать на принципы работы винды ...
Автор: ymy
Дата сообщения: 19.12.2002 09:59
vito333 Паковшики выделяют место в свопе для всей проги, а если не упаковано то ничего не выделяется.

А скорость запуска может падать и из-за всяких realtime антивирей, при работе некоторых вся оптимизация идёт коту под хвост.
Автор: leputain
Дата сообщения: 19.12.2002 14:07
я замерял без антивирей, вообще голая винда, без каких либо резидентов.
Автор: Farch
Дата сообщения: 19.12.2002 14:27
ymy
ёпт пакования хотят пусть сами UPX ом жмут твои какие трблы?
Автор: leputain
Дата сообщения: 19.12.2002 15:33
ну вердикт кто-нить огласит?
хотя всё равно будет оговорка типа "с одной стороны..., а с другой..."
Автор: vito333
Дата сообщения: 19.12.2002 15:41
Because of the way UPX (and other packers for this format) works, you
can see increased memory usage of your compressed files. If you start
several instances of huge compressed programs you're wasting memory
because the common segements of the program won't get shared across the instances. On the other hand if you're compressing only smaller programs, or running only one instance of larger programs, then this penalty is smaller, but it's still there.

это из доки UPX ...
Автор: leputain
Дата сообщения: 19.12.2002 16:11

Цитата:
you're wasting memory

этим всё сказано
Автор: QuickeneR
Дата сообщения: 19.12.2002 20:46
ymy
До меня долго не могло дойти, о чем речь. Признаю твою правоту.
P.S. Но если вытащить диск, на котором находится 70 метровый несжатый экзешник, ошибок так и появляется.
Автор: vito333
Дата сообщения: 20.12.2002 05:25
буду сжимать дальше все и вся - но теперь внимательно проверять результат сжатия - спасибо всем за вопросы и ответы!

например Рехетка от YMY сжатая пашет ничуть не хуже и ресурсов не хавает дополнительно ...
Автор: ymy
Дата сообщения: 20.12.2002 05:38
QuickeneR Я так понял что не появляется, ты специальный тестовый делал или просто некий имеющийся, ведь в обычных больших EXE 90% кода и данных не используется в данный фиксированный момент времени, в Idle они вобще крутятся в маленьком цикле обработки сообщений, если же к коду или к данным уже был доступ до вынимания винта, то скорее всего эти странички всё ещё в оперативке, и ещё там упреждающее чтение есть.
Автор: Madness
Дата сообщения: 20.12.2002 12:26
Среди паковщиков инногда появляются протекторы. Один из них - AsProtect. Так вот замерил я время запуска personalpassworder321 в запакованном и распакованном виде. Замерял встроенным в часы секундомером, так шта не пинать. Результаты получились такие: 7-8 сек и 1-2 сек соответственно. Комп древний (200). Вывод: мочить протекторы.
Насчет объема памяти(TaskInfo):
1) InMem - 3552 Kb
Total - 6644 Kb
2) InMem - 2568 Kb
Total - 6388 Kb
Автор: Felix
Дата сообщения: 20.12.2002 16:01
Вобщем прибыли результаты .....
тестировался пока один файл .... (сжатие UPX'ом)

Степень упаковки: нет
Размер: 958 976 байт
Загрузка ЦП при запуске: 18%
Загрузка ЦП в процессе работы: 0%
Использование памяти: 1 192 кбайт
Пиковое использование памяти: 2 884 кбайт

Степень упаковки: 9
Размер: 300 032 байт
Загрузка ЦП при запуске: 32%
Загрузка ЦП в процессе работы: 0%
Использование памяти: 1 224 кбайт
Пиковое использование памяти: 4360 кбайт

Степень упаковки: 3
Размер: 368 128
Загрузка ЦП при запуске: 35%
Загрузка ЦП в процессе работы: 0%
Использование памяти: 1 228 кбайт
Пиковое использование памяти: 4 360 кбайт...

вот такие результаты
Автор: vito333
Дата сообщения: 20.12.2002 16:10
Felix
плиз - еще какое-нить файло 3-5 мег для полноты картины!
Автор: Farch
Дата сообщения: 20.12.2002 16:27
Felix

Цитата:
плиз - еще какое-нить файло 3-5 мег для полноты картины!

photoshop.exe
я когда смотрел мне аш весело стало
Автор: Felix
Дата сообщения: 20.12.2002 16:30
vito333 для того, чтобы файло было размером 3-5 метров надо подключить пол-вагона библиотек ..... (а оно нужно????)
есть файл на 1,4 М... с собой если интересно то могу поковырять....
Farch предположу, что данная вещь оптимизирована донельзя.... так что смысла паковать нет.
Автор: Farch
Дата сообщения: 20.12.2002 16:40
Felix

Цитата:
так что смысла паковать нет


Цитата:
я когда смотрел мне аш весело стало

ты попробуй )
upx --best photoshop.exe
32% останеться от 16ти мегов
Автор: Felix
Дата сообщения: 20.12.2002 16:41
Farch какие результаты по поводу использования памяти до и после?
Автор: vito333
Дата сообщения: 20.12.2002 16:49
Farch
а чего не ASPackom?
Автор: Felix
Дата сообщения: 20.12.2002 16:55
не на то ответить пытался... сорри
Автор: Farch
Дата сообщения: 20.12.2002 17:03
vito333
попробуй ASpackом там разница будет в 2 процента.

Добавлено
Felix

Цитата:
какие результаты по поводу использования памяти до и после?

не тестировал. просто сжал посматреть у меня не workstation такие глупые тесты проводить.
Автор: Felix
Дата сообщения: 20.12.2002 17:17

Цитата:
такие глупые тесты проводить.
вобщем-то из-за памяти весь топик и понёсся


Добавлено
... коль пошла такая пьянка.... по просьбам телезрителей:
vito333

(глумимся над МСВорд)

Степень упаковки: нет
Размер: 8 441 907
Загрузка ЦП при запуске: 15%
Загрузка ЦП в процессе работы: 3-4%->0
Использование памяти: 2 256 кбайт
Пиковое использование памяти: 7 528 кбайт

Степень упаковки: 9
Размер: 3 899 392
Загрузка ЦП при запуске: 44%
Загрузка ЦП в процессе работы: 4-7%->0
Использование памяти:2 248 кбайт //не сильно отличается, но:
Пиковое использование памяти:14 444 кбайт...
Автор: vito333
Дата сообщения: 20.12.2002 17:39
Felix

Цитата:
Пиковое использование памяти
- это когда случается и как?
Автор: Felix
Дата сообщения: 20.12.2002 17:48
vito333 судя по документации и предыдущим выссказываниям ентот пик происходит при начальной распаковке сжатой программы в память. По справи Wind:

Цитата:
... объём физической памяти, используемой процессом с момента своего запуска.

Автор: Farch
Дата сообщения: 20.12.2002 18:36
Felix

Цитата:
вобщем-то из-за памяти весь топик и понёсся

ymy сказал что ПАКОВЩИКИ бэд. значит это бэд.
доказательств он принёс имхо достаточно.

однако на транспортировку это положительно влияет... потому что я сомневаюсь что какой нить 7zip, rar, cab сожмёт в 32% photoshop.exe

а после upx тоже распаковать можно.
Автор: Madness
Дата сообщения: 20.12.2002 19:28
Народ, а вы попробуйте несколько копий запакованной проги пустить(для полноты тестов, так сказать) и посмотрим скока оно сожрет памяти :)

Farch
Я вот на той же проге проверил:
Размер файлов исходный (pack/unpack) - 812Kb/2.12Mb
Размер файлов запакованных Rar (pack/unpack) - 791Kb/745Kb
Так что опять минус паковки :)
Автор: leputain
Дата сообщения: 20.12.2002 20:34
Farch

Цитата:
однако на транспортировку это положительно влияет... потому что я сомневаюсь что какой нить 7zip, rar, cab сожмёт в 32% photoshop.exe
а после upx тоже распаковать можно.

ага-ага, а есть где нить такой архиватор тогда, на основе такого же алгоритма, что-ли?
Автор: ymy
Дата сообщения: 20.12.2002 20:45
Farch

Цитата:
однако на транспортировку это положительно влияет... потому что я сомневаюсь что какой нить 7zip, rar, cab сожмёт в 32% photoshop.exe
Не, 7zip и CAB жмут лучше, UPX всё же оптимизирован по скорости распаковки (и все остальные EXE пакеры)

2All Мерить надо не использование памяти процессом, а скока усей памяти уменьшилось, и размер свободного свопа.

Добавлено
Степень сжатия UPX --best

File size Ratio Format Name
-------------------- ------ ----------- -----------
15908864 -> 5191680 32.63% win32/pe Photoshop.exe


Cab(Best) - 4978570 !!!
Rar(Best) - 5096768
7z(Best) - 5122027


И после правильных замеров с всё тем же Photoshop-ом

Тест проводился в практически одинаковых условиях. Никаких антивирей, планировщиков и т.д., перед запуском каждого варианта комп полностью перегружался, а после перезагрузки пауза пока всё не устаканится, замер, запуск, пауза пока всё не устаканится, замер, перезагрука и ещё раз но с незапакованным.

Итак
Упакованный:
До запуска занято=153250K После занято=226240K Разница=72990
НеУпакованный:
До запуска занято=152968K После занято=218860K Разница=65892

Итого, утечка в результате пакования 72990-65892=7098K !!!!
Размер незапакованного файла 15536K, тобишь утечка в 50% !!! от размера EXEшника.
Автор: Farch
Дата сообщения: 20.12.2002 22:14
ymy

Цитата:
тобишь утечка в 50% !!! от размера EXEшника

епт теперь то всем хватает? или опять что ен понятно?

Цитата:
Cab(Best) - 4978570 !!!

спасибо что поправил.
Автор: QuickeneR
Дата сообщения: 20.12.2002 22:24
ymy

Код: static const char a[70000000];
int main(int argc, char* argv[])
{
char s[1000];
cin >> s;
cout << a[60000000];
return 0;
}

Страницы: 123

Предыдущая тема: Самая лучшая грабалка MP3


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.