一位朋友声称 Common Lisp拥有最快的Perl兼容的任何语言正则表达式库,包括Perl 本身,因为有了像SBCL这样的优化JIT编译器,CL-PPCRE可以编译每个特定的正则表达式直到本机程序集,而其他实现,包括Perl,必须生成字节码并解释它。在实践中,特别是对于我们尝试将相同的正则表达式与许多输入或长输入匹配的常见情况,编译开销不仅仅是合理的。
不幸的是,我找不到任何关于此的基准,而且我不了解自己的经验,所以我转向蜂巢头脑。任何人都可以评估这个说法吗?
答案 0 :(得分:5)
我没有自己的基准可供分享,但也许你的朋友指的是有关便携式正则表达式库CL-PPCRE的结果。当前的网页不再说基准,但是{{3}}的礼貌我们可以看到,它曾用于显示基准测试结果,其中CL-PPCRE的表现优于Perl 2对1。基准测试是一项棘手的业务(特别是对于移动目标),这可能解释了为什么当前页面对此事保持沉默。
答案 1 :(得分:1)
PCRE库现在有一个JIT编译器模块,与其他正则表达式相比它具有良好的性能:http://sljit.sourceforge.net/regex_perf.html或http://blog.rburchell.com/2011/12/why-i-avoid-qregexp-in-qt-4-and-so.html