Размер упаковщика PAR - PullRequest
       9

Размер упаковщика PAR

2 голосов
/ 13 августа 2011

Я некоторое время использовал PAR: Packer (pp) для создания бинарных файлов для Windows. Они всегда были достаточно большими (около 6-8 МБ), недавно я обновил свои пакеты (я использую stawberry perl на windows), и теперь он производит двоичные файлы размером почти 20 МБ! Я понимаю, что это включает в себя всю среду Perl со всеми необходимыми модулями, но это выходит из-под контроля, и немного смущает, чтобы передать кому-то простой скрипт размером 19 МБ! Есть ли способ уменьшить размер двоичного файла? Кто-нибудь знает, почему размер увеличился в последних выпусках пары или PAR Packer?

Ответы [ 2 ]

3 голосов
/ 21 января 2012

Когда вы устанавливаете новые модули в вашей среде Perl (или даже только обновляете некоторые), pp со временем будет включать в себя множество дополнительных файлов, даже если они не используются вашим сценарием. Это связано с тем, что pp более безопасно, чем строгое в отношении того, что включать, что оно обнаруживает множество бесполезных зависимостей.

Хитрость заключается в использовании двух сред Perl. Один для разработки, а другой только для сборки двоичных файлов. Для среды сборки, начните с новой установки Perl, установите PAR :: Packer и только модули, необходимые для вашего приложения.

В моей строительной среде я могу создать двоичный файл Tk размером всего 5 Мб. С моей средой разработки (которая содержит много мусора из CPAN) на той же машине, тот же сценарий составляет 13 Мб.

2 голосов
/ 13 августа 2011

Какая разница? ИМХО, меня бы не волновал размер , только производительность

PAR ничего от вас не скрывает, вы хотите Если вам интересно узнать, какие файлы упакованы, если они лишены стручка и т. Д., Все, что вам нужно сделать, это посмотреть внутри unzip -d foo foo.exe

FWIW, AFAIK, размер не изменился, поэтому вы должны использовать множество модулей.

  • Типичный no-module-print-print-pl дает около 1,6 млн.
  • Загрузите Moose / Tk, и вы получите около 5,1 млн.
  • Загрузите Gtk2 / Glib / Pango / Cairo / threads и вы получите около 9,7M
...