Erick Wendel Profile picture
May 11 12 tweets 3 min read
Top 5 dicas para resolver problemas de lentidão em apps @nodejs (ou mesmo qualquer app) 🔥🧵 /1
1 - Entenda o motivo da lentidão e timeouts

Essa é a fase de investigação, procure a causa da lentidão e o motivo de sua aplicação não estar entregando os requests em tempo (timeout). /2
Isso pode ser analisado usando ferramentas de Application Performance Monitoring, os APMs, ou até mesmo localmente, com pacotes para testes de carga como o autocannon em Node.js, o wrk da Apache por aí vai /3
Com isso, você pode tirar uma "foto", ou no nome técnico, um snapshot e jogar em ferramentas gratuitas como o #Google Trace e iniciar sua investigação.

Mas a forma mais simples, é usar o pacote npm #ClinicJS que já nos trás um grande set de ferramentas para Node.js /4
2 - Caching

Se você evitar chamadas replicadas, ou seja, se você consegue cachear os dados, por menor tempo que seja suas queries de banco de dados ou respostas do servidor, boa parte dos problemas de lentidão e indisponibilidade podem ser resolvidos na hora /5
Comece testando o pacote NodeCache que faz caching em memória e depois faça um experimento usando o Redis, que é o melhor na minha opinião /6
3 - Faça um benchmarking

O #benchmarking é fundamental neste trabalho de otimização

Você vai lá, guarda os números que sua aplicação estava antes de você tentar otimizar e depois da otimização você compara estes números com o novo resultado /7
Isso não só é bom para você saber o quanto foi melhorado, mas também pode apresentar para o seu time a progressão de melhoria da aplicação /8
4 - Crie mais cópias de aplicação

Criar cópias de instâncias pode aliviar o tráfego para aplicações que usam muito processamento em memória /9
Por isso, a lentidão tende a reduzir.

Mas MUITO cuidado, aumentar cópias de aplicação sem aumentar a capacidade do banco de dados, pode não necessariamente melhorar a eficácia das suas operações /10
5 - Refatore queries de banco de dados

E o mais importante, revise o que seu framework ou sua lib de banco de dados estão fazendo.

Projetos em produção a muitos anos, os famosos legados, tendem a ter débitos técnicos que, em grande maioria, estão relacionados /11
em como sua aplicação se comunica com o banco de dados ou conexões externas

Eaaaai, o que achou das dicas? Tem mais? 🤩
/12

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Erick Wendel

Erick Wendel Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @erickwendel_

May 10
Fiz o @nodejs suportar 5x mais requests com 99.9% de uptime, adicionando somente 10 linhas de código 🤯😬

Se liga nesse experimento! 🧵 /1
Peguei uma API simples, que tem um problema de performance, que trava o event loop fazendo uns for loops muito doidos

Em seguida, rodei um teste de carga, com 500 usuários simultâneos, por 30 segundos requisitando o mesmo endpoint. /2
Nesse teste, consegui chegar aos 1K requests concluídos e uma latência média de 44 segundos 😬😳

E com a técnica que vou te ensinar nesse vídeo, eu consegui um resultado extremamente melhor /3
Read 7 tweets
May 9
Como resolvi um bug no @nodejs que afeta o @Facebook Jest, @yarnpkg e milhares de outros pacotes 🔥🤩

Bora para o 🧵 /1 Image
Para quem não sabe, há um tempo atrás consegui resolver um bug no Node.js que impedia que sub processos se comunicassem com o processo principal quando usássemos #ECMAScript modules /2
Fiz até um vídeo no canal mostrando todo o passo a passo, vou deixar o link no final do post para você assistir depois!

Minha primeira contribuição foi realizada na versão 17 do Node.js, só que até então, o problema não havia sido corrigido na versão corrente /3
Read 7 tweets
May 6
Como dobrei a capacidade de resposta de um endpoint adicionando cache de apenas 100 milisegundos 🤯🧵

/1 Image
Até criei um repositório completão para você testar essa prova de conceito, comparando o antes e o depois das alterações. /2
Eu já trabalhei bastante otimizações e caching de informações que são "quase" realtime, em desenvolvimento de uma grande plataforma de Application Performance Monitoring (APM) /3
Read 10 tweets
May 5
Top 5 dicas que eu gostaria de ter ouvido quando iniciei em programação 🔥🤩

Segue o 🧵 /1 Image
1 - Você não precisa ser 100% produtivo(a) todos os dias

Isso serve para qualquer área da vida. Não adianta tentar ser produtivo(a) 12 horas por dia todos os dias, seu corpo e principalmente sua mente precisam de descanso. /2
Tem vezes que o dia parece não render bem, mas é normal, isso acontece com todo mundo (e principalmente comigo, até hoje)

A chave é não parar e ir com calma, a consistência é chave no aprendizado /3
Read 11 tweets
May 4
Top 5 experimentos em JavaScript para elevar seu nível técnico e ainda se divertir fazendo 🔥🤩

Segue o fio 🧵 /1
Uma das coisas mais divertidas em programação, é interagir com o mundo real e hoje existem dezenas de ferramentas prontas para você fazer isso com pouco esforço, como Tensor Flow, OpenCV e mais /2
1 - Detecção facial e adição de filtros no vídeo

Sabe aqueles filtros do Instagram ou Snapchat?

Você pode criar seu próprio filtro em vídeo, usando bibliotecas como o ffmpeg e identificar a área do rosto para colher as coordenadas sobre onde deve inserir o filtro /3
Read 10 tweets
May 3
Dicas de como QUEBRAR o Node.js em produção? 🤯😱🤣

A thread🧵 /1 Image
É isso mesmo! hahaha.

Entender como causar problemas do tipo vazamento de memória, travamento do event loop ou usar toda a memória reservada no sistema é também algo importante a se saber. /2
Isso porque esse tipo de problema pode e vai acontecer com você em algum momento, em produção.

Então você sabendo simular o problema, vai te ajudar a prevenir que ele não aconteça /3
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(