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

use*_*746 2 perl performance perl-module

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

我已经使用了脚本来描述Devel::NYTProf,我可以看到包含这些Perl模块的成本我希望最小化.

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

有什么建议?

编辑:

我需要预先编写脚本,以便每次引发时都不包含编译开销.

mob*_*mob 6

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


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