我已经开始使用Perl解析器几年了,虽然因为它一直处于pre-alpha状态,所以我从不担心加速它。但是,我已经开始研究如何优化它,并对我发现的内容感到惊讶。
经过一些算法和正则表达式优化后,正常执行需要大约3.5秒,其中,大约2.3是Perl启动所需的时间(我在使用“die perl scriptname.pl”后进行测量(“完成”);“在第一行”。据我所知,Regexp :: Grammars并不是最快的Perl模块,但它的初始化似乎比实际执行脚本要长得多。
因此,我开始研究在运行之前将其编译为字节码的简单方法。似乎B :: Bytecode是实现此功能的唯一功能方式,不再维护或包含在主要的Perl发行版中。有没有简单的方法可以减少启动时间?
谢谢!
答案 0 :(得分:1)
有多种方法可以运行持久性脚本。通常它们用于Web服务器上下文,但没有理由不将它们用于其他目的。
一个这样的系统是CGI::SpeedyCGI,这可能是也可能不是我想到的。目前这也称为PersistentPerl。