Функциональная композиция медленнее нескольких итераций - PullRequest
0 голосов
/ 09 мая 2018

Я делал базовый пример понимания функциональной композиции по сравнению с использованием карт и был весьма озадачен результатами производительности

const doubleIt = (x) => x*2
const render = (x) => `<li>${x}</li>`
const composeRenderAndDouble = function (x) {
    return render(doubleIt(x));
}
const arr = Array(1000).fill(0)

const mergeArraysAndFunctionalManyMaps = (arr) => arr.map(doubleIt).map(render)
const mergeArraysAndFunctionalOneMap = (arr) => arr.map(composeRenderAndDouble)


mergeArraysAndFunctionalManyMaps(arr)// executes in 0.788ms
mergeArraysAndFunctionalOneMap(arr)// executes in 1.184ms

Я пытался запустить код несколько раз, и каждый раз, когда несколько карт работают быстрее, чем одна карта с функциональной композицией внутри.

Запуск в среде Node (v10) Я бы предположил, что несколько карт будут работать медленнее, поскольку мы выполняем несколько итераций для одного и того же массива?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...