Map.get
vs Array.find
Quer fazer a boa no seu time e trazer uma baita performance pra sua aplicação com pouco esforço? se liga nessa dica! 🤯
De um ctrl+f e busque pelo #find e se possível os substitua por uma estrutura de dados #Map
Sabe por que? 🧐
BuscaLinear (find):
Percorre o array objeto por objeto até encontrar o que procura.
Complexidade de tempo: O(n)
, onde n é o número de objetos no array.
Índices:
Complexidade de tempo: Aproximadamente O(1)
(em média, para a maioria dos casos).
Para buscas frequentes, pode ser benéfico usar índices com base na propriedade que você está pesquisando.
🔎 Busca linear: #find
As formas mais tradicionais de busca em arrays no #javascript é o #find, mas ele apesar de muito útil, ele tem um problema, ele é linear O(n)
, onde pode percorrer todo o seu arrau até encontrar o que deseja.
const product = products.find(p => p.id === 1);
⚡️ Índices: #Map
Uma forma de otimizar muitos cenários de busca é usar a estrutura de dados #Map
Nesse link eu deixo um #benchmark com um #exemplo de busca de produtos onde você pode ver um resultaod semelhante a esse aqui :
Busca Linear: 12.647450000047684ms
Busca via Map: 0.005816996097564697ms
`
Conclusão
Usar a estrutura de dados correta na hora de fazer uma busca pode impactar muito no tempo de resposta e consumo de recurso da sua aplicação, claro que nem sempre iremos poder usar uma estrutura de dados do tipo Map
ou Object
, mas tenho certeza que em muitos casos você consegue substituir a criaçao da sua lista por um Map e ganhar um baita ganho de performence!
Newsletter
Gostou desse conteúdo? Aproveita pra se inscrever na nossa newsletter https://highperformanceletterbr.substack.com/
Postamos conteúdos sobre performance e otimização todas as semanas!
Primeiro curso de performance backend js do brasil(ou do mundo)
🚀 Domine o Desempenho Backend com JavaScript! 🚀
🎓 Apresentamos o PRIMEIRO Curso de Performance Backend em JavaScript no Brasil! 🇧🇷
🔥 Seja um dos pioneiros a explorar o mundo do desenvolvimento backend com foco em eficiência e velocidade. Este curso exclusivo é sua porta de entrada para se tornar um especialista em otimização e desempenho de aplicações JavaScript.
🌟 O Que Oferecemos:
Instrutores Especialista: Aprenda com um profissional que atua com esse assunto no dia a dia.
Conteúdo Avançado: Desde fundamentos até técnicas avançadas de otimização.
Projetos Práticos: Coloque suas habilidades à prova com desafios reais.
Comunidade e Networking: Junte-se a uma comunidade vibrante de desenvolvedores.
🛠️ Domine Ferramentas e Técnicas Essenciais: Conteúdo prático sobre as melhores tools de monitoramento e análise de recursos
Análise de Performance;
Diagnóstico;
Otimização de Código;
Gerenciamento Eficiente de Memória;
Eventos e streaming;
🚀 Transforme a forma que os outros devs te veem:
Esteja na vanguarda do desenvolvimento backend. As habilidades que você adquirirá são inestimáveis e altamente procuradas no mercado de trabalho para posições senior.
Top comments (0)