Случайное выполнение RegEx или string.replace - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть код, который выполняет 4500 операций по замене строк.

Я измеряю, сколько времени занимает выполнение этого кода, используя performance.now() до и после.

Иногда это занимает 20-30 мсвыполнить, и иногда это занимает 1550-1600 мс.

Я не могу понять, почему производительность может быть такой случайной.Это какой-то сбой предсказания ветвления ЦП или оптимизация 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...