# Benchmark de Regex

Compare o desempenho de diferentes padrões regex, identifique gargalos e detecte casos degenerativos

> Página canônica: https://elysiatools.com/pt/tools/regex-benchmark

- **Categoria:** Development

- **Palavras-chave:** regex, benchmark, desempenho, teste, otimizacao, comparacao

## Visão geral

## Ferramenta de Benchmark de Desempenho Regex

Esta ferramenta ajuda você a:
- **Comparar múltiplos padrões regex** para encontrar o mais rápido
- **Identificar gargalos de desempenho** em suas expressões regulares
- **Detectar casos degenerativos** que causam retrocesso catastrófico
- **Obter recomendações de otimização** para melhor desempenho

## Recursos
- Cronometragem precisa com fase de aquecimento para otimização JIT
- Análise estatística (média, min, max, mediana)
- Classificação de nível de desempenho (rápido/médio/lento/muito lento)
- Detecção automática de anti-padrões comuns
- Teste de casos degenerativos para casos extremos

## Uso
1. Insira múltiplos padrões regex (um por linha)
2. Forneça strings de entrada de teste (uma por linha)
3. Configure iterações e aquecimento
4. Escolha flags regex (por exemplo, 'gi', 'm')
5. Execute o benchmark para comparar desempenho

## Dicas de Desempenho
- Use grupos de não captura `(?:...)` em vez de grupos de captura
- Evite quantificadores aninhados como `(.*)+`
- Use grupos atômicos `(?>...)` ou quantificadores possessivos para evitar retrocesso
- Seja específico com classes de caracteres em vez de `.*`
- Ancore padrões com `^` e `$` quando possível

## Entradas

- **Padrões Regex** (textarea): Enter multiple regex patterns (one per line) Example: .* \[a-z\]+ \d{3}-\d{3}-\d{4}
- **Entradas de Teste** (textarea): Enter test strings (one per line) Example: hello world 123-456-7890 test@example.com
- **Flags Regex** (text): Flags to apply to all patterns (e.g., gi, m, i)
- **Iterações** (number): Number of iterations per test (1-10000)
- **Execuções de Aquecimento** (number): Warmup iterations for JIT optimization (0-1000)
- **Engine Regex** (select)
- **Incluir Casos Degenerativos** (checkbox)

## Quando usar

- Ao otimizar expressões regulares complexas que apresentam lentidão em produção.
- Para comparar a performance de diferentes abordagens de regex antes de implementá-las no código.
- Ao realizar testes de estresse para garantir que padrões regex não causem travamentos por retrocesso (backtracking) excessivo.

## Como funciona

- Insira os padrões regex que deseja testar e as strings de entrada correspondentes.
- Configure o número de iterações e execuções de aquecimento para garantir resultados precisos e estáveis.
- Execute o benchmark para visualizar métricas detalhadas, como tempo médio, mediana e classificação de desempenho.
- Analise as recomendações de otimização fornecidas para refinar seus padrões e evitar anti-padrões.

## Casos de uso

- Validação de performance em sistemas de processamento de logs de alto volume.
- Refatoração de bibliotecas de validação de formulários para reduzir o consumo de CPU.
- Auditoria de segurança para prevenir ataques de negação de serviço via regex (ReDoS).

## Perguntas frequentes

### O que é retrocesso catastrófico?

Ocorre quando uma regex tenta explorar um número exponencial de caminhos para encontrar uma correspondência, travando a CPU.

### Por que usar execuções de aquecimento?

O aquecimento permite que o motor de execução (JIT) otimize o código antes da medição real, garantindo dados mais precisos.

### Posso testar regex em diferentes linguagens?

A ferramenta permite selecionar entre diferentes engines, como JavaScript (V8) ou Python, para simular o comportamento real do seu ambiente.

### Como a ferramenta classifica o desempenho?

Ela utiliza análise estatística comparativa para categorizar os padrões entre rápido, médio, lento ou muito lento.

### O que são casos degenerativos?

São entradas de teste projetadas especificamente para forçar o pior cenário de desempenho de uma regex, revelando vulnerabilidades.

## Ferramentas relacionadas

- [Testador de regex Java](https://elysiatools.com/pt/tools/java-regex-tester): Teste padrões java.util.regex online: grupos nomeados (?…), quantificadores possessivos e grupos atômicos, flags Pattern e código Java pronto.
- [Testador de regex PCRE2](https://elysiatools.com/pt/tools/pcre-regex-tester): Teste padrões PCRE2 online: toda a sintaxe de grupos nomeados ((?P), (?), (?'n')), quantificadores possessivos, grupos atômicos, \\A \\z \\h — mais pcre2grep e a API C.
- [Folha de Consulta Regex](https://elysiatools.com/pt/tools/regex-cheat-sheet): Uma folha de consulta pesquisável e localizada para a sintaxe de expressões regulares — classes de caracteres, âncoras, quantificadores, grupos e referências, lookaheads, sequências de escape e flags, com um testador rápido integrado
- [Diferença de Imagem](https://elysiatools.com/pt/tools/image-difference): Calcula a diferença entre duas imagens para identificar mudanças ou criar máscaras de comparação
- [Detector de breaking changes de API e planejador de migracao](https://elysiatools.com/pt/tools/api-breaking-changes-detector-migration-planner): Compara dois schemas OpenAPI 3.x, encontra mudancas incompatíveis e sugere estrategias de migracao
- [Testador de regex BGP Community e explicador Looking-Glass](https://elysiatools.com/pt/tools/bgp-community-string-regex-tester-and-looking-glass): Valida padrões regex de BGP community (RFC 8294), compara AS-paths e gera config Cisco/Juniper/FRR.
- [Linting de Regex](https://elysiatools.com/pt/tools/regex-linter): Detecta padrões de regex propensos a erros e arriscados, verifica backtracking catastrófico, padrões não ancorados e fornece sugestões de reescrita
- [Comparação de gravidade de pneumonia (CURB-65 / PSI / SMART-COP)](https://elysiatools.com/pt/tools/curb-65-vs-pneumonia-severity): Calcula simultaneamente três escores de pneumonia e os compara: CURB-65 (0-5, encaminhamento), PSI/PORT (classe I-V, estratificação de mortalidade mais precisa), SMART-COP (0-10, prevê necessidade de suporte respiratório/vasopressor na UTI). Cada um tem foco: CURB-65 rápido; PSI mais preciso, porém complexo; SMART-COP detecta quem precisa de UTI. Mostra o total e a categoria de cada escore, e analisa a concordância (todos ambulatorial/internação/UTI). Em caso de discordância, conduta mais conservadora. Fontes: Lim 2003, Fine 1997, Charles 2008. Não é conselho médico.

## Exemplos

- [Alternativas de Padrões Regex](https://elysiatools.com/pt/samples/regex-alternatives): Múltiplas formas de escrever o mesmo padrão regex com diferentes compensações
- [Exemplos de Substituição de Regex](https://elysiatools.com/pt/samples/regex-replace): Coleção de padrões de substituição de regex comuns e úteis para transformação de texto e limpeza de dados
- [Padrões de Regex Arriscados](https://elysiatools.com/pt/samples/risky-regex): Coleção de padrões regex que demonstram vulnerabilidades de segurança, problemas de desempenho e anti-padrões comuns para evitar
- [Grupos de Captura Nomeados Regex](https://elysiatools.com/pt/samples/regex-named-groups): Coleção de padrões regex usando grupos de captura nomeados para extrair dados estruturados de texto. Grupos nomeados tornam os padrões mais legíveis e mantíveis atribuindo nomes significativos às partes capturadas.

## Conteúdo relacionado

- [Fluxo de teste, visualizacao e seguranca de regex](https://elysiatools.com/pt/hubs/regex-utility): Crie expressoes regulares confiaveis com referencia de sintaxe, testes, visualizacao, preview de substituicao, benchmarks e scanner ReDoS.
