Skip to content

Instantly share code, notes, and snippets.

@CTimmerman
Created May 14, 2019 13:40
Show Gist options
  • Save CTimmerman/e5f6781082ca0fb6213e11f07d88fa05 to your computer and use it in GitHub Desktop.
Save CTimmerman/e5f6781082ca0fb6213e11f07d88fa05 to your computer and use it in GitHub Desktop.
Benchmark iteration in JS.
/* Calculate the sum of upVotes, https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
Node v10.15.3 on Win10:
reduce: 0.171ms
101
for loop: 0.005ms
101
for each: 0.018ms
101
map: 0.062ms
101
*/
const posts = [
{id: 1, upVotes: 2},
{id: 2, upVotes: 18},
{id: 3, upVotes: 1},
{id: 4, upVotes: 30},
{id: 5, upVotes: 50}
]
let sum = 0
console.time("reduce")
sum=posts.reduce((s,p)=>(s+=p.upVotes),0)
console.timeEnd("reduce")
console.log(sum)
sum = 0
console.time("for loop")
for(let i=0;i<posts.length;++i)sum+=posts[i].upVotes
console.timeEnd("for loop")
console.log(sum)
sum = 0
console.time("for each");
posts.forEach(e=>{sum+=e.upVotes})
console.timeEnd("for each")
console.log(sum)
sum = 0
console.time("map")
posts.map(e=>{sum+=e.upVotes})
console.timeEnd("map")
console.log(sum)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment