Se você usa arrays no JavaScript, o motor V8 está tomando decisões por trás dos panos que podem deixar seu código MUITO mais rápido… ou MUITO mais lento.
E a maioria das pessoas nem percebe 👇
📌 O segredo: *Elements Kinds*
O V8 classifica seus arrays internamente para otimizar execução.
Mas essa otimização depende totalmente de como você usa o array.
🔑 Tipos que o V8 usa
🟢 SMI (inteiros) → mais otimizado
[1, 2, 3]
🟡 DOUBLE (float)
[1, 2.5]
🔴 GENERIC (misturado) → pior cenário
[1, "a", {}]
⚠️ Armadilha crítica (quase ninguém fala disso)
A evolução é irreversível:
SMI → DOUBLE → GENERIC
const arr = [1, 2, 3];
arr.push(1.5); // já piorou
arr.push("x"); // pior ainda
👉 Depois disso, não tem volta.
📦 PACKED vs HOLEY
🚀 PACKED (rápido) → sem buracos
[1, 2, 3]
🐢 HOLEY (lento) → com buracos
const arr = [1, 2, 3];
arr[10] = 5;
👉 Isso força o V8 a fazer mais checks internos.
⚡ O que destrói sua performance
- Misturar tipos no mesmo array
- Criar arrays esparsos (buracos)
- Mudar o tipo ao longo do tempo
🚀 Como escrever código mais rápido
- Use arrays homogêneos
- Evite buracos
- Seja previsível
- Não “evolua” o array sem necessidade
🧠 Resumo brutal
- V8 otimiza arrays agressivamente
- Você pode quebrar isso facilmente
- Pequenas decisões → grande impacto em escala
Para saber mais segue o post que fala mais a fundo sobre esse assunto.
Top comments (0)