Pular para o conteudo principal

Onde está o gargalo

Como investigar lentidão sem sair otimizando tudo e sem chamar qualquer problema de performance.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

O problema

Quando um sistema fica lento, muita equipe entra em modo pânico produtivo.

Todo mundo quer ajudar.

Aí começam as ações paralelas:

  • alguém mexe na query
  • alguém memoiza componente
  • alguém troca biblioteca
  • alguém reduz payload

No fim, o sistema continua ruim e ninguém sabe dizer o que realmente resolveu ou piorou.

O erro de base é este:

  • tratar lentidão como um problema espalhado, quando normalmente existe um ponto dominante travando o resto

Modelo mental

Pensa assim:

gargalo é a etapa que mais segura o relógio do fluxo.

Não importa se o sistema tem dez lugares “não ideais”.

Se um deles concentra quase todo o atraso percebido, é ali que a investigação deveria começar.

Esse gargalo pode estar em lugares bem diferentes:

  • rede
  • banco
  • CPU
  • renderização
  • integração externa
  • fila ou processamento assíncrono

Sem isolar esse ponto com evidência, você só está distribuindo esforço.

Quebrando o problema

Primeiro: qual fluxo está sofrendo?

“A aplicação está lenta” é uma descrição ruim.

Você precisa recortar:

  • abrir dashboard?
  • buscar usuários?
  • salvar formulário?
  • trocar de aba?

Sem esse recorte, você mede um monte de ruído junto.

Depois: em que etapa o tempo está indo embora?

Uma vez que o fluxo está claro, a investigação melhora muito quando você separa as etapas.

Exemplo de perguntas úteis:

  • o atraso está esperando dados chegarem?
  • o cliente está gastando tempo processando esses dados?
  • a interface está demorando para renderizar?
  • a query do banco está dominando o tempo total?
  • existe integração externa segurando a resposta?

Esse tipo de separação vale mais do que sair otimizando “performance” como se fosse uma coisa só.

Nem sempre o sintoma aponta para a causa

Tela travando pode parecer problema de frontend.

Mas talvez o navegador esteja só esperando uma API lenta.

Resposta demorada pode parecer banco.

Mas talvez o servidor esteja gastando CPU serializando coisa demais.

Por isso gente experiente evita diagnosticar pelo sintoma isolado.

Sintoma mostra onde dói.

Gargalo mostra de onde a dor vem.

O maior custo merece a primeira aposta

Mesmo quando existem vários problemas, a pergunta prática é:

  • qual deles está segurando mais tempo agora?

Se a API leva 1.8s e a renderização leva 120ms, começar pelo DOM é uma aposta ruim.

Isso não quer dizer que os 120ms não existem.

Quer dizer que eles não são a primeira conta que você deveria pagar.

Ferramenta é meio, não fetiche

Você pode usar profiler, tracing, logs, métricas, EXPLAIN, DevTools ou o que fizer sentido.

O ponto não é citar a ferramenta mais sofisticada.

O ponto é conseguir responder:

  • onde está o tempo
  • quanto tempo está lá
  • o que mudou depois da correção

Exemplo simples

Imagina um dashboard que leva 2 segundos para abrir.

O time de frontend suspeita do gráfico porque ele parece pesado.

Quando alguém mede direito, descobre:

  • API: 1.9s
  • transformação no cliente: 40ms
  • render do gráfico: 60ms

Nesse cenário, discutir troca de biblioteca de gráfico é quase distração.

O gargalo está no dado chegando tarde, não na UI desenhando.

Agora imagina o oposto:

  • API: 120ms
  • transformação no cliente: 900ms
  • render: 700ms

Aí o problema está do lado do cliente.

Mesma sensação para o usuário.

Diagnóstico completamente diferente.

Erros comuns

  • Tentar otimizar várias camadas ao mesmo tempo.
  • Chamar qualquer lentidão de “problema de frontend”.
  • Ignorar a etapa dominante porque outra parte parece mais elegante de mexer.
  • Confiar na intuição mesmo depois de a medição apontar outra direção.
  • Declarar gargalo cedo demais sem decompor o fluxo.

Como um senior pensa

Quem tem mais experiência costuma frear a ansiedade do time.

O raciocínio é mais ou menos este:

antes de otimizar, eu quero quebrar o fluxo em etapas e descobrir qual parte está dominando o tempo. Sem isso, a chance de atacar o lugar errado é alta demais.

Senioridade aqui aparece em duas coisas:

  • método de investigação
  • disciplina para não comprar refactor antes da prova

Não é sobre ter o melhor palpite.

É sobre errar menos o alvo.

O que o entrevistador quer ver

Em entrevista, esse tema avalia mais do que performance.

Ele avalia clareza de raciocínio.

O entrevistador quer ver se você:

  • recorta bem o problema
  • separa sintoma de causa
  • mede antes de propor correção
  • prioriza a etapa dominante

Uma resposta forte costuma soar assim:

Primeiro eu recorto o fluxo que está lento. Depois separo as etapas para descobrir se o tempo está em rede, backend, banco, CPU ou renderização. Quando acho o custo dominante, ataco esse ponto antes de espalhar otimização pelo resto do sistema.

Encontrar o gargalo real vale mais do que levantar dez suspeitas elegantes.

Performance boa começa quando o time para de otimizar o sistema inteiro e passa a perseguir o relógio certo.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Próximo artigo Como Otimizar LCP sem Adivinhar o que é Lento Artigo anterior Reuso Sem Complicar

Continue explorando

Artigos relacionados