javascript - 函数式组合比多次迭代慢
问题描述
我正在做一个关于使用地图理解功能组合的基本示例,并且对性能结果感到非常困惑
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
我已经尝试多次运行代码,并且每次多张地图都比一张内部具有功能组合的地图快。
在节点环境(v10)中运行我会假设多个映射会更慢,因为我们在同一个数组上执行多次迭代?
解决方案
推荐阅读
- vba - 禁用 CMD 时的 VBA Shell 替代方案
- laravel - 如何使用 nwidart/laravel-modules 添加一些外部包?
- php - 如何在 php 中格式化日期,例如 2020 年 8 月
- c++ - 检查实例是否为空或其中有什么
- mysql - 通过查询在组上选择不可分组的 id
- javascript - 文本为空,则应显示错误
- python-3.x - 如何在 Django 中创建一个文件夹来存储用户输入
- docker - vscode dev Containers 如何挂载volume
- java - Java中的内存泄漏,与堆大小无关的堆内存不足
- sql - 如何过滤具有不同条件的表中的记录