Perl 节省内存和编译时间
在perl中使用模块有没有节省内存和编译时间的方法?例如,不加载所有不必要的、未使用的sub 或者,如果我将我的sub拆分为许多不同的Perl 节省内存和编译时间,perl,runtime,compiler-optimization,Perl,Runtime,Compiler Optimization,在perl中使用模块有没有节省内存和编译时间的方法?例如,不加载所有不必要的、未使用的sub 或者,如果我将我的sub拆分为许多不同的pm文件,然后只加载必要的模块,这是一个好方法?例如: #!/usr/bin/perl -w sub mysub1() { use MySubsGroup1; } sub mysub2() { use MySubsGroup2; } 这个解决方案使用更少的内存并获得更少的编译时间?或者只加载必要功能的最佳实践是什么?来自 自动使用-延迟模块加载
pm
文件,然后只加载必要的模块,这是一个好方法?例如:
#!/usr/bin/perl -w
sub mysub1() {
use MySubsGroup1;
}
sub mysub2() {
use MySubsGroup2;
}
这个解决方案使用更少的内存并获得更少的编译时间?或者只加载必要功能的最佳实践是什么?来自
自动使用-延迟模块加载,直到使用某个函数
如果模块已加载,则声明
use autouse'Module'=>qw(func1 func2($;$)代码>
相当于
使用模块qw(func1-func2)代码>
use
始终在编译时运行。但是需要不需要。所以你可以使用require模块代码>在任何函数调用之前
当然,模块将仅在第一次执行require
时加载(并保持加载状态)
请注意,use
还可以对加载的模块调用import
,您可能也想这样做<代码>使用模块qw(f1 f2)
是需要模块的编译时版本;模块->导入(qw(f1 f3))
使用在编译时运行,因此将其放入子例程没有任何区别。因此无法仅加载必要的子例程?CPAN上还有Class::Autouse模块,如果Autouse与要加载的模块不兼容,则可以使用该模块。