JS Performance Tests
by kurtgrung
JavaScript
// Define the size of the array & Generate an array with random numbers
const arraySize = 1000000;
const numbers = Array.from({ length: arraySize }, () => Math.random());
// for loop
function sumWithForLoop(array) {
let sum = 0;
for (let i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
// forEach method
function sumWithForEach(array) {
let sum = 0;
array.forEach(num => {
sum += num;
});
return sum;
}
// for...of loop
function sumWithForOfLoop(array) {
let sum = 0;
for (const num of array) {
sum += num;
}
return sum;
}
// map method
function sumWithMap(array) {
return array.map(num => num).reduce((acc, curr) => acc + curr, 0);
}
// filter method
function sumWithFilter(array) {
return array.filter(num => num > 0.5).reduce((acc, curr) => acc + curr, 0);
}
// Run performance tests
function runTests() {
console.log("Testing for loop (++)...");
const startForLoop = performance.now();
sumWithForLoop(numbers);
const endForLoop = performance.now();
console.log("Execution time for for loop:", endForLoop - startForLoop, "milliseconds");
console.log("Testing forEach method (array.forEach())...");
const startForEach = performance.now();
sumWithForEach(numbers);
const endForEach = performance.now();
console.log("Execution time for forEach method:", endForEach - startForEach, "milliseconds");
console.log("Testing for...of loop (for...of)...");
const startForOfLoop = performance.now();
sumWithForOfLoop(numbers);
const endForOfLoop = performance.now();
console.log("Execution time for for...of loop:", endForOfLoop - startForOfLoop, "milliseconds");
console.log("Testing map method (array.map())...");
const startMap = performance.now();
sumWithMap(numbers);
const endMap = performance.now();
console.log("Execution time for map method:", endMap - startMap, "milliseconds");
console.log("Testing filter method (array.filter())...");
const startFilter = performance.now();
...