var test = [{id: 1, name: 'test1', enabled: true}, {id: 2, name: 'test2', enabled: false}, {id: 3, name: 'test3', enabled: true}, {id: 4, name: 'test4', enabled: false}, {id: 5, name: 'test5', enabled: true}, {id: 6, name: 'test6', enabled: true}, {id: 7, name: 'test7', enabled: true}, {id: 8, name: 'test8', enabled: false}, {id: 9, name: 'test9', enabled: true}, {id: 10, name: 'test10', enabled: false}];
var enabled = test.filter(t => t.enabled).length;
var test = [{id: 1, name: 'test1', enabled: true}, {id: 2, name: 'test2', enabled: false}, {id: 3, name: 'test3', enabled: true}, {id: 4, name: 'test4', enabled: false}, {id: 5, name: 'test5', enabled: true}, {id: 6, name: 'test6', enabled: true}, {id: 7, name: 'test7', enabled: true}, {id: 8, name: 'test8', enabled: false}, {id: 9, name: 'test9', enabled: true}, {id: 10, name: 'test10', enabled: false}];
var enabled = 0;
test.forEach(t => {
if(t.enabled) {
++enabled;
}
});
var test = [{id: 1, name: 'test1', enabled: true}, {id: 2, name: 'test2', enabled: false}, {id: 3, name: 'test3', enabled: true}, {id: 4, name: 'test4', enabled: false}, {id: 5, name: 'test5', enabled: true}, {id: 6, name: 'test6', enabled: true}, {id: 7, name: 'test7', enabled: true}, {id: 8, name: 'test8', enabled: false}, {id: 9, name: 'test9', enabled: true}, {id: 10, name: 'test10', enabled: false}];
var enabled = 0;
for(var i = 0; i < test.length; ++i) {
if(test[i].enabled) {
++enabled;
}
}
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
filter | |
forEach | |
for |
Test name | Executions per second |
---|---|
filter | 7162982.0 Ops/sec |
forEach | 11672875.0 Ops/sec |
for | 11760222.0 Ops/sec |
Let's dive into the world of JavaScript microbenchmarks on MeasureThat.net.
Benchmark Definition
The benchmark definition is empty, which means that the script preparation code and HTML preparation code are not provided. This allows users to write their own script and HTML to test specific scenarios.
Individual Test Cases
There are three individual test cases:
var test = [...]; var enabled = test.filter(t => t.enabled).length;
filter()
method.var test = [...]; var enabled = 0; test.forEach(t => { if(t.enabled) { ++enabled; } });
forEach()
method.var test = [...]; var enabled = 0; for (var i = 0; i < test.length; ++i) { if (test[i].enabled) { ++enabled; } };
for
loop.forEach()
method, but with a more explicit iteration syntax.forEach()
method.Libraries
In this benchmark, no libraries are explicitly mentioned. However, it is likely that modern browsers like Chrome use various internal libraries or APIs under the hood. These might include:
filter()
, forEach()
)Special JS Features
None of these test cases specifically target any special JavaScript features, such as:
=>
)async function(...) { ... }
)However, the use of traditional for
loops and increment variables might have implications for developers who are accustomed to using modern JavaScript features.
Other Alternatives
For those interested in exploring alternative benchmarking approaches or libraries, here are a few suggestions:
These alternatives can provide more comprehensive or specialized benchmarking capabilities, depending on the specific use case.