Introdução
Neste laboratório, vamos explorar e praticar como escrever uma função de alto desempenho que retorna o índice da função de execução mais rápida a partir de um array de funções. O laboratório se concentra no uso de performance.now() e Array.prototype.map() para medir o tempo de execução das funções com precisão e compará-las. Ao final do laboratório, você terá uma melhor compreensão de como otimizar seu código para obter o máximo desempenho.
Como Encontrar a Função de Maior Desempenho em JavaScript
Para encontrar a função de maior desempenho em JavaScript, siga estes passos:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use
Array.prototype.map()para gerar um array onde cada valor é o tempo total gasto para executar a função apósiterationsvezes. - Use a diferença nos valores de
performance.now()antes e depois para obter o tempo total em milissegundos com um alto grau de precisão. - Use
Math.min()para encontrar o tempo de execução mínimo e retorne o índice desse tempo mais curto, que corresponde ao índice da função de maior desempenho. - Se você omitir o segundo argumento,
iterations, a função usará um padrão de10000iterações. - Tenha em mente que quanto mais iterações você usar, mais confiável será o resultado, mas levará mais tempo.
Aqui está um trecho de código de exemplo:
const mostPerformant = (fns, iterations = 10000) => {
const times = fns.map((fn) => {
const before = performance.now();
for (let i = 0; i < iterations; i++) fn();
return performance.now() - before;
});
return times.indexOf(Math.min(...times));
};
Para usar esta função, passe um array de funções como o primeiro argumento e o número de iterações como o segundo argumento (opcional). Por exemplo:
mostPerformant([
() => {
// Loops through the entire array before returning `false`
[1, 2, 3, 4, 5, 6, 7, 8, 9, "10"].every((el) => typeof el === "number");
},
() => {
// Only needs to reach index `1` before returning `false`
[1, "2", 3, 4, 5, 6, 7, 8, 9, 10].every((el) => typeof el === "number");
}
]); // 1
Resumo
Parabéns! Você concluiu o laboratório da Função de Maior Desempenho. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.