【发布时间】:2019-12-29 05:13:19
【问题描述】:
我的问题与之前的Stackoverflow post 有关,它说以下两种方式的速度几乎相同。
但是当我实际使用循环计数 1000000 对其进行测试时,似乎有一致的性能。虽然我预计示例 1 应该更快,但结果却比示例 2 慢。
测试页面的结果是here。例如1,执行时间为:[20.27,19.82,16.17],但例如2,它们更少:[18.57,15.48,15.14]。
结果让我很困惑。任何人都可以暗示原因吗?
var str = "Hello World";
// Example 1
var regExp1 = /[aeiou]+/gi;
for(var i = 0; i < 1000; ++i)
regExp1.exec(str);
// Example 2
for(var j = 0; j < 1000; ++j)
/[aeiou]+/gi.exec(str);
【问题讨论】:
-
你是如何计时的?我认为要使基准测试有意义,它应该只测量对
exec()的调用,而不是其他任何东西(“其他任何东西”与正则表达式的性能无关)。 -
您为进行测试提供的link 测量的是操作/秒,而不是经过的时间。当我运行测试时,我发现示例 1 的 ops/sec 比示例 2 更高,这意味着示例 1 中的方法实际上比示例 2 中的方法快。
标签: javascript regex performance