Erick Wendel Profile picture
Jul 11 10 tweets 5 min read
Why JavaScript Generators fix 90% of your problems when working with big loads of data 🤯

Let's? 🧵 /1 Image
I've seen many people facing performance problems on the @nodejs platform or even on vanilla JS on the browser and when I ask what's happening they usually blame the language. /2
Although, when I look at the implementation, I see they are trying to process all the data simultaneously. /3
They try downloading all the data in memory and the Node.js platform warns something like "you've been using too much memory, are you sure you're doing it right?"

What do they get with this info? 😬 /4
"Uh, #Nodejs or #JavaScript cannot handle this heavy task, let's jump to a better language such as #Python..."

If you've heard the same speech or are facing performance issues when processing large amounts of data in JavaScript then I have something to help you! /5
I made this video about one of the currently most powerful JavaScript features, the Generator Functions.

In summary, the Generator Functions let you process terabytes of data, if you will, by paginating data and processing it on-demand as the data is available. /6
In this video, I'll teach you how you can use it in practice 🔥 /7
I made a very useful example of a data integration process where you:
- consume data from a server
- request detailed info for each individual item from another server
- process it and submit it to a 3rd server /8
Using the Generator function would help you to unlock your apps and process even more data using less processing power

👉🏻 Check this out: bit.ly/generators-js-… /9
Please, mention a friend here on the post so he can learn this amazing JavaScript feature for good 🤩🔥

#javascript #dataprocessing #nodejs #generators #iterators #tutorial #jstip #performance #dataintegration /10

• • •

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_

Jul 6
wooowwwww, I know that you've always wanted to compare objects in JS as `obj === obj` so I brought good news for you 🤩🔥

Let's begin🧵 /1
I don't know about you but I'm really excited about this feature, let me show you how it works 🔥

/2
The #ECMAScript proposal for the #Record and #Tuple value types is Stage 2 which means that it could change at any time but there're packages and playgrounds for you to try out this feature before it's available on the language.

/3
Read 11 tweets
Jul 5
Aewwww agora simmmmmm, atendendo a pedidos eu trouxe uma super surpresaaaaaaaa 🔥🔥

Boraaaaaaaaa🧵 /1
No ultimo mês estive palestrando em grandes eventos pelo mundo e muita gente acompanhou a parada de perto. /2
Fui para Athenas na Grécia, para Amsterdã em Netherlands palestrar para mais de 2 mil pessoas (como na foto) e por fim em Tel Aviv em Israel para também mais de 2 mil pessoas presencialmente 🚀🚀 /3
Read 8 tweets
May 11
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
Read 12 tweets
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

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!

:(