Some JavaScript performance comparisons
In JavaScript there are often many ways to achieve the same common things
These are not scientific tests because they are carried out in an uncontrolled environment in a Web browser and on the command line, but they should give you a rough idea of the differences.
1,000,000 iterations
Lets look at one million iterations in a variety of forms:
* For loop with empty body * .forEach on array with empty callback * For loop summing the entries from an array * Array.reduce summing the entries from an array * .map on an array, just returning the entry * Filling an Array with sequential numbers using a for loop and push * Filling an Array with random numbers using Math.random and push * Setting a pre-sized Array with sequential numbers using a for loop * Setting a pre-sized Array with random numbers using Math.random * Filling a Uint8Array with sequential numbers using a for loop * Filling a Uint8Array with random numbers using Math.random * Filling a Uint16Array with sequential numbers - 1 million bytes * Filling a Uint16Array with sequential numbers - 1 million entries * Filling a Uint32Array with sequential numbers - 1 million bytes * Filling a Uint32Array with sequential numbers - 1 million entries * Filling a Float16Array with sequential numbers - 1 million bytes * Filling a Float16Array with sequential numbers - 1 million entries * Filling a Float32Array with sequential numbers - 1 million bytes * Filling a Float32Array with sequential numbers - 1 million entries * Copying a Uint8Array using a for loop - 1 million bytes * Copying a Uint16Array using a for loop - 1 million bytes * Copying a Uint32Array using a for loop - 1 million bytes * Copying a Float16Array using a for loop - 1 million bytes * Copying a Float32Array using a for loop - 1 million bytes * Copying a Uint8Array using constructor - 1 million bytes * Copying a Uint16Array using constructor - 1 million bytes * Copying a Uint32Array using constructor - 1 million bytes * Copying a Float16Array using constructor - 1 million bytes * Copying a Float32Array using constructor - 1 million bytes