几年来我一直在断断续续地研究 Perl 解析器,但由于它一直处于 pre-alpha 阶段,我从不担心加速它。然而,我已经开始研究优化它的方法,并对我的发现感到惊讶。
经过一些算法和正则表达式优化后,正常执行大约需要 3.5 秒,其中,大约 2.3 是 Perl 启动所需的时间(我用 "time perl scriptname.pl" 在放置 "die("Done “);”在第一行)。我知道 Regexp::Grammars 并不是目前最快的 Perl 模块,但它的初始化似乎比实际执行脚本花费的时间要长得多。
因此,我开始研究一种在运行之前将其编译为字节码的简单方法。似乎 B::Bytecode,唯一的功能性方法,不再维护或包含在主要的 Perl 发行版中。有什么简单的方法可以减少启动时间吗?
谢谢!