🇧🇷 Otimizando buscas em mais de 1000x de maneira rápida e fácil
Published: 2023-11-02 21:30:54


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jzk0qle13qjamxll1six.png)


## `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](rb.gy/ljb89) 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!



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ra9rgybkxatyaajhljyn.png)

## 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.

✅ Acesse: https://highperformanceschool.hotmart.host/