自由软件正则表达式引擎的对比
webphp 13年前
<p> <a href="/misc/goto?guid=4958192068912640616">正则引擎 sljit</a> 的作者受到了 <a href="/misc/goto?guid=4958192069658694720">John Maddock 之前对各种正则表达式引擎性能的测评</a>的影响,他把自己的正则引擎和其他一些流行的自由软件正则引擎进行了性能对比,其中包括著名的 <a href="/misc/goto?guid=4958184731477216376">PCRE</a> (著名的 IDS 项目 Snort 就是使用的这个引擎),专注于并行化的 <a href="/misc/goto?guid=4958192071090196961">tre</a> 和 Google 在 2010 年发布的 <a href="/misc/goto?guid=4958192071822727853">re2</a>。sljit 正则引擎不兼容 POSIX 和 PERL,而是在设计的各个方面跟随了 <a href="/misc/goto?guid=4958192072559934334">Ken Thompson</a> 的脚步,基于 DFA (确定有限状态机)和 JIT 编译来对模式匹配进行加速。从<a href="/misc/goto?guid=4958192073302779485">最终的测评结果</a>来看:</p> <p style="padding-left:30px;">- PCRE 对输入的初始字符的表达式非常的快<br /> - TREE 则使用了并行的匹配算法,在复杂的正则表达式上有优势<br /> - RE2 的性能超乎想象的高,而且只使用了0.5MB 的内存作为空间换时间的开销<br /> - SLJIT 的速度也不错,而且没有任何空间换时间的开销(这是因为目前还没有实现状态捕捉)。</p> 来自: <a id="link_source2" href="/misc/goto?guid=4958192074050062380" target="_blank">Solidot</a>