我的Perl脚本启动太慢,包含许多模块 - 我可以预先编译它吗?

时间:2013-10-11 13:56:11

标签: performance perl perl-module

我有一个Perl脚本,其中包含一些自定义Perl模块。

我使用Devel::NYTProf对脚本进行了分析,我可以看到包含这些Perl模块的成本我希望最小化。

我已安装PAR::Packer并编译了我的脚本以使其独立,但它不包含自定义Perl模块。

有什么建议吗?

编辑:

我需要预先编写脚本,以便每次激活时都不包含编译开销。

1 个答案:

答案 0 :(得分:6)

如果您在启动时不需要导入某些软件包,请将use调用更改为require并将其移至代码中需要软件包的位置(因此您可以在导入时将其导入需要,不一定在启动时)。根据您的程序的复杂程度,在不破坏程序或影响其行为的情况下,可以通过大量工作来确定可以更改哪些调用。


鲍罗丁的守护神建议也很好。启动程序的框架,加载必要的包并等待调用它(可能设置套接字连接或信号处理程序)。然后,当你的程序运行时,fork它并调用一些启动程序有用部分的&main子程序。