Собственно первая запись в блоге по теме, с чем я вас и поздравляю.
Попробую провести небольшой сравнительный тест архиваторов для EXE. На истину в последней инстанции не претендую, но может кому и будет полезно, а мне будет интересно, т.к. по роду моей деятельности (программист, если кто не понял) частенько приходится паковать разную ерунду от крохотных утилит, до весьма прилично весящих программных комплексов.
Для теста я закачал шесть наиболее распространенных, на мой взгляд, упаковщиков. Версии, вроде, везде последние на сегодняшний день, но обещать этого со 100% уверенностью не стану. Итак, вот наш список:
- AsPack 2,12
- FSG 2,0
- Mew11 SE 1,12
- NsPack 3,7
- PECompact 2,98
- UPX 3,03w
Тестирование я буду проводить на трех разных программах: winword.exe из пакета MS Office 2007, dmaster.exe версии какой-то не самой свежей, и wtv.exe (тулза для просмотра DDS-текстур). Все тестовые образцы имеют сильно отличающийся размер и созданы с использованием разных компиляторов: VC++ 7, Delphi 6/7, VC++ 6 Debug соответственно.
Задачей теста ставится сравнение эффективности упаковщиков в зависимости от исходного размера файлов, их компилятора и наличия отладочной информации в EXE. Для тестов будет использован максимальный уровень компрессии, но везде, где есть возможность, будут проставлены опции совместимости. Таким образом добитваться преимущества в сжатии путем, скажем, неработоспособности на Windows 98/Me я не буду. Думаю, можно приступать к тестированию.
winword.exe | dmaster.exe | wtv.exe | |
Начальный размер | 12,037,688 | 3,280,896 | 102,400 |
AsPack | 5,551,672 | 1,127,936 | 55,296 |
FSG | 6,619,009 | 1,411,097 | 51,853 |
Mew11 | 5,181,168 | 1,078,894 | 49,096 |
NsPack | 4,991,488 | 1,010,688 | 50,176 |
PECompact | 4,827,192 | 1,017,856 | 50,176 |
UPX | 5,760,056 | 1,120,256 | 50,688 |
Итак, результаты есть, можно наслаждаться. Размеры файлов в таблице приведенны, ессно, в байтах. Лидеров у нас три: Mew11, NsPack и PECompact. Они значительно оторвались от своих конкурентов вцелом и каждый из них победил на упаковке определенного файла. Явный аутсайдер сравнительного теста - FSG, что и не удивительно, пакер не обновлялся с 2004 года.
Дальнейшие выводы читатели могут сделать самостоятельно, но есть одно "но". Упаковщик с самым высоким уровнем компрессии далеко не обязательно самый "крутой". Для сжатия EXE-файлов очень важен еще один параметр - скорость распаковки, ведь конечный пользователь не будет особо рад программе, которая стартует пол часа. А победители на настройках максимальной компрессии как раз и не могут особой скоростью похвастать.
Следует отметить, что файл winword.exe размером в 12Мб был взят для теста, вообще, исключительно в образовательных целях. Сжимать программу такого размера - сущий маразм, она и так не очень то быстро стартанет на многих машинах. В общем таблица перед вами, пробуйте, тестируйте, выбирайте.