Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору DimmY Dimitr1s Mpress? знакомая штука, сам стал им пользоваться. И причина простая - UPX часто сбоит по семёрой - не раз уже это встречал, а этот ни смотря ни на что пока там работает. Хотя я стараюсь паковать пореже - только если в этом действительно имеется реальная необходимость - например Sumatra PDF в моей сборке для Zip версии пакуется именно им. И причина вполне прозаично - этот вариант рассчитан на флешки и оптику, а место там всегда не хватает, и упаковка его позволяет экономить. В иных случаях я стараюсь ей не пользоваться - сегодня винты достаточно большие для того, чтобы не паковать и в то же время достаточно быстрые чтобы обойтись в качестве решения сжатием NTFS или других файловых систем. С одной стороны это экономит для той же NTFS примерно до 40% места на диске (статистика по использованию дисков Windows XP - сразу после установки - примерно 1,4 Гб, если сжать каталог ОС средствами NTFS, той он займёт на диске около 1060 Мб - вот и выходит экономия реального места на томе до 40%), но тут смотреть надо сжимаемость бинарника не средствами пакера, а по тому сколько он занимает в места ОЗУ до упаковки и сколько ему требуется памяти после. Опять пример из практики: SumatraPDF.exe, версия 1.5. Использование ОЗУ по данным Process Explorer/Process Hacker, рабочий набор, Working Set (WS, это и есть реальная память программы) / приватный набор (это только чистый код): без сжатия, размер на диске около 4,5 Мб, сжатый UPX с ключами ----best --compress-icons=0e или --ultra-brute --compress-icons=0 либо Mpress с ключаме -r -m бинарник имеет размер около 1,6 Мб. смотрим размер WS в случае упаковки или без неё, пакеры UPX 3.07W STABLE, mpress 2.17. не упакованный бинарник WS = 8,5 Mb упакованный UPX --best --compress-icons=0/--ultra-brute --compress-icons=0 бинарник - ~ WS = 12,5 Мб упакованный mpress -r -m бинарник - ~ WS = 8,51 Мб т.е. код распаковщика в данном случае использует разный объём памяти, что в общем-то ожидаемо - для UPX почти 4 Мб, а вот для mpress около 14 Кб. Но это именно для данного бинарника, для других результаты будут иными, это я проверял на сотнях разных бинарных модулях. Одни могут оказаться чувствительны к сжатию, сжатый модуль просто не запустится, другие, как например суматра допускают сжатие, но ведут себя не ожидаемо - например распаквщик UPX имеет объём всего 512 байт, но тогда какие данные находятся в ОЗУ? Я смотрел WinHex-м - таблица распаковщика. Именно они занимали там львиную долю памяти в WS распаковщика UPX. Но, я ещё раз повторю решение о применении пакера без измерения WS пакуемой и тщательной проверки её работы на всех допустимых для неё ОС принимать нельзя - никто не скажет какие подводные камни могут вылезти. Это моё личное мнение, но оно основано на реально полученной статистике и опыте. | Всего записей: 34362 | Зарегистр. 31-07-2002 | Отправлено: 01:38 24-06-2011 | Исправлено: Victor_VG, 01:39 24-06-2011 |
|