2

一段时间以来,我一直在使用 PAR:Packer (pp) 为 Windows 创建二进制文件。它们总是可以理解的大(大约 6-8MB),最近我更新了我的包(我在 Windows 上使用 stawberry perl),现在它正在生成几乎 20MB 的二进制文件!我知道它包含了一个包含所有需要模块的整个 perl 环境,但是它已经失控了,给某人一个 19MB 的简单脚本有点尴尬!反正有没有减少二进制大小?任何人都知道为什么在最近的几个版本或 PAR Packer 中尺寸增加了?

4

2 回答 2

3

当您在 Perl 环境中安装新模块时(或者甚至只升级一些模块),pp将随着时间的推移包含许多额外的文件,即使它们没有被您的脚本使用。这是因为pp在要包含的内容方面比严格更安全,因此它会拾取许多无用的依赖项。

诀窍是使用两个Perl 环境。一个用于开发,另一个仅用于构建二进制文件。对于构建环境,从全新的 Perl 安装开始,安装 PAR::Packer 并安装应用程序所需的模块。

使用我的构建环境,我可以生成只有 5 Mb 的 Tk 二进制文件。在同一台机器上使用我的开发环境(其中有很多来自 CPAN 的垃圾),相同的脚本是 13 Mb。

于 2012-01-21T18:55:47.327 回答
2

它有什么区别?恕我直言,我不关心大小,只关心性能

PAR不会向您隐藏任何内容,您想要unzip -d foo foo.exe

FWIW,AFAIK,大小没有改变,所以你必须使用很多很多模块。

  • 典型的 no-module-print-print-pl 产量约为 1.6M
  • 加载 Moose/Tk,你的数据大约为 5.1M
  • 加载 Gtk2/Glib/Pango/Cairo/threads 大约 9.7M
于 2011-08-13T19:40:48.890 回答