RegEx或string.replace的随机性能

时间:2019-02-20 10:33:44

标签: javascript node.js regex

我有一些代码可以执行4500个字符串替换操作。

我测量在performance.now()之前和之后这段代码执行的时间。

有时需要20到30毫秒才能执行,有时则需要1550到1600毫秒。

我无法弄清楚为什么演出如此随机。是某种CPU分支预测失败或Node.js优化以某种方式缓存替换结果吗?

// example `row`:
// row = { pattern: '/some words/', replacement: 'some other words' }
for (const row of replacements) {
    // Avoid replacing with the word "undefined":
    if (!row.replacement) { row.replacement = ''; }

    const regex = new RegExp(row.pattern, 'gi');
    modifiedText = modifiedText.replace(regex, row.replacement);
}

0 个答案:

没有答案