Skip to main content



Returns the index of the function in an array of functions which executed the fastest.

Use to generate an array where each value is the total time taken to execute the function after iterations times. Use the difference in values before and after to get the total time in milliseconds to a high degree of accuracy. Use Math.min() to find the minimum execution time, and return the index of that shortest time which corresponds to the index of the most performant function. Omit the second argument, iterations, to use a default of 10,000 iterations. The more iterations, the more reliable the result but the longer it will take.

const mostPerformant = (fns: Function[], iterations = 10000) => {
const times = => {
const before =;
for (let i = 0; i < iterations; i++) fn();
return - before;
return times.indexOf(Math.min(...times));
() => {
// 10x time iterate
fillArray(10000, "1").every((el) => typeof el === "number");
() => {
fillArray(1000, "2").every((el) => typeof el === "number");
]); // 1