[DUVIDA] Por que o tempo de execução dessas funções muda dependendo da ordem?
Estou implementando minhas próprias funções map
, filter
, reduce
e acabei percebendo que a função que sempre fica por último no código, sempre será executada mais rápida.
Isso me deixou um pouco curioso.
Por que isso acontece?
Será na maneira em como estou comparando os tempos ou é alguma questão de ambiente?
Exemplo:
const { results } = await obterPessoa("a");
console.time("meu filter");
const familiaLarsMeuFilter = results.meuFilter(
(item) => item.name.toLowerCase().indexOf(`lars`) !== -1
);
console.timeEnd("meu filter");
console.time("filter");
const familiaLarsFilter = results.filter(
(item) =>
item.name.toLowerCase().indexOf(`lars`) !== -1
);
console.timeEnd("filter");
Terei um resultado diferente para cada runtime, mas filter
sempre vai rodar mais rápido que meuFilter
Agora, se eu inverto a ordem, meuFilter
vai rodar mais rápido que filter
.
Espero que possam me ajudar a sanar essa dúvida.
Vou testar algumas coisas com a biblioteca benchmark.js
e quem sabe tentar descobrir alguma coisa.
Obrigado