Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Measure iterations3
(version: 0)
Comparing performance of:
Loop with conditions vs Iterator vs Generator vs .forEach vs fori
Created:
one year ago
by:
Guest
Jump to the latest result
Script Preparation code:
function filter(iterable, predicate) { const iter = iterable[Symbol.iterator](); return { [Symbol.iterator]() { return this; }, next() { let result; while ( !(result = iter.next()).done && !predicate(result.value) ); return result; } }; } function* filterGenerator(iterable, predicate){ for (const value of iterable) { if (predicate(value)) { yield value; } } } var arr = Array(100).fill(0).map((_, i) => i + 1); var predicate = (x) => x % 3 === 0 && x % 5 === 0; var test1 = 0, test2 = 0, test3 = 0, test4 = 0, test5 = 0;
Tests:
Loop with conditions
for (const value of arr) { if (predicate(value)) { test1 += value; } } console.log(test1, 'test1');
Iterator
for (const value of filter(arr, predicate)) { test2 += value; } console.log(test2, 'test2');
Generator
for (const value of filterGenerator(arr, predicate)) { test3 += value; } console.log(test3, 'test3');
.forEach
arr.forEach((x) => { if (predicate(x)) test4 += x; }); console.log(test4, 'test4');
fori
for (let i = 0; i < arr.length; i++) { if (predicate(arr[i])) { test5 += arr[i]; } } console.log(test5, 'test5');
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (5)
Previous results
Fork
Test case name
Result
Loop with conditions
Iterator
Generator
.forEach
fori
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
5 months ago
)
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Mobile Safari/537.36 EdgA/142.0.0.0
Browser/OS:
Chrome Mobile 142 on Android
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Loop with conditions
49069.4 Ops/sec
Iterator
42086.7 Ops/sec
Generator
42602.7 Ops/sec
.forEach
50002.9 Ops/sec
fori
46291.2 Ops/sec
Related benchmarks:
filter vs loop simple comparison
Array.prototype.filter vs Lodash filter vs L
Filtering + Mapping
Filtering and mapping with .filter(...).map(...) vs .flatMap(...) vs custom filterMap(...)
Array remove
Comments
Confirm delete:
Do you really want to delete benchmark?