🇧🇷 A Ineficiência do Regex e Como Otimizá-lo

highperformanceschool

High performance school - blog

Posted on November 2, 2023

🇧🇷 A Ineficiência do Regex e Como Otimizá-lo

Image description

Regex, o vilão da performance

Você sabia que expressões regulares (regex) podem ser extremamente ineficientes em certos cenários? Isso ocorre principalmente devido a 'backtracking' excessivo, que pode levar a tempos de execução exponenciais!

Por exemplo, considere o regex (a+)+b e a string a...a! (onde ... são milhares de 'a'). Esse regex tentará diversas combinações antes de falhar, tornando-se muito lento.

Mas a boa notícia é: o V8 (motor JavaScript do Chrome e Node.js) introduziu uma flag experimental para lidar com isso: --enable-experimental-regexp_engine-on-excessive-backtracks.

🔍 Teste Prático:

const regex = /(a+)+b/;
const input = 'a'.repeat(5000);
console.time('Regex Sem Otimização');
input.match(regex);
console.timeEnd('Regex Sem Otimização');
Enter fullscreen mode Exit fullscreen mode

o resultado será algo em torno de 70.885ms

Para usar a flag no Node.js:

node --enable-experimental-regexp_engine-on-excessive-backtracks seuScript.js
Enter fullscreen mode Exit fullscreen mode

Com isso, ao detectar backtracks excessivos, o V8 mudará para um mecanismo de regex diferente e mais eficiente!

Aqui o resultado caiu pra 1.977ms 😲

Lembre-se: regex é uma ferramenta poderosa, mas com grandes poderes vêm grandes responsabilidades. Use com sabedoria e sempre monitore o desempenho!

Olhe https://v8.dev/blog/non-backtracking-regexp para mais informações.

Image description

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/

💖 💪 🙅 🚩
highperformanceschool
High performance school - blog

Posted on November 2, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related