4

这篇文章中,据说预编译正则表达式将提高脚本性能。作者通过性能测试证明了这一点。但是,据我了解,这篇文章是在讨论重复使用正则表达式的情况。如果脚本中有很多正则表达式,但每个都只使用一次怎么办?预编译在整个脚本中只使用一次的正则表达式是否会带来性能优势?

4

3 回答 3

3

我不相信您链接的性能测试是决定性的。如果查看结果,差异可以忽略不计,因为正则表达式不够复杂。看看这个测试以获得更好的答案。

无论哪种方式,如果多次使用正则表达式,存储正则表达式值只会提高性能。这种性能提升完全是由于正则表达式本身的初始编译开销。如果您将正则表达式存储在变量中,那么它仍然会在第一次被编译,就像第一次编译文字一样。当第二次使用存储的正则表达式并且它已经编译时,就会发生差异,而文字正则表达式必须再次编译。

于 2014-02-20T15:06:14.193 回答
3

我认为这取决于浏览器的实现,我们不能肯定地说一种方法更好。

在 Firefox 和 chrome 中查看不同的结果。

在此处输入图像描述

我很困惑为什么 chrome 会为非重新编译的正则表达式提供更快的结果。

于 2018-01-23T07:36:03.277 回答
1

如果它只使用一次 - 那么只需使用正则表达式文字。

你的观点是正确的——只有当你经常使用相同的正则表达式时才有意义。

于 2013-02-18T23:40:16.550 回答