5

几年来我一直在断断续续地研究 Perl 解析器,但由于它一直处于 pre-alpha 阶段,我从不担心加速它。然而,我已经开始研究优化它的方法,并对我的发现感到惊讶。

经过一些算法和正则表达式优化后,正常执行大约需要 3.5 秒,其中,大约 2.3 是 Perl 启动所需的时间(我用 "time perl scriptname.pl" 在放置 "die("Done “);”在第一行)。我知道 Regexp::Grammars 并不是目前最快的 Perl 模块,但它的初始化似乎比实际执行脚本花费的时间要长得多。

因此,我开始研究一种在运行之前将其编译为字节码的简单方法。似乎 B::Bytecode,唯一的功能性方法,不再维护或包含在主要的 Perl 发行版中。有什么简单的方法可以减少启动时间吗?

谢谢!

4

1 回答 1

0

有一些方法可以运行持久性脚本。通常它们在网络服务器上下文中使用,但没有理由不将它们用于其他目的。

一个这样的系统是CGI::SpeedyCGI,它可能是也可能不是我所想的。这目前也称为PersistentPerl

于 2013-12-14T19:11:21.880 回答