Lentidão quase nunca está onde parece
A intuição do time costuma apontar para o lugar errado. Depois de investigar dezenas de aplicações lentas, o padrão é consistente: duas ou três causas respondem por quase todo o problema, e raramente são as que estavam sendo discutidas.
As mais comuns:
1. N+1 no ORM
A tela lista 50 pedidos. Para cada pedido, o template acessa $pedido->cliente->nome. São 51 consultas em vez de 2. Em desenvolvimento, com 10 registros de teste, ninguém percebe. Em produção, com 50 itens por página e 200 usuários simultâneos, o banco vira o gargalo.
2. Índice ausente na coluna de filtro
A consulta filtra por status e ordena por created_at, e nenhuma das duas tem índice. Com 5 mil linhas o banco varre a tabela inteira em milissegundos. Com 5 milhões, a mesma consulta leva 8 segundos — e segura uma conexão do pool enquanto isso.
3. Trabalho síncrono que não precisa ser síncrono
Ao finalizar um pedido, a requisição envia e-mail, gera PDF, chama a API do ERP e grava log de auditoria. O usuário espera por tudo. Se o ERP estiver lento, ele espera pelo ERP. Nada disso precisa acontecer antes da resposta.
4. Ausência de cache onde o dado quase não muda
Toda requisição recalcula a mesma lista de categorias, o mesmo menu de permissões, a mesma tabela de configuração. Dados que mudam uma vez por semana sendo lidos do banco milhares de vezes por hora.
Por que medir antes é inegociável
Otimizar sem medir tem duas consequências previsíveis: você gasta esforço no lugar errado, e não consegue provar o resultado.
Nosso diagnóstico usa profiling em ambiente com dados de produção e responde com número:
- Quais rotas concentram o tempo total de processamento
- Quais consultas SQL somam mais tempo por requisição — e quantas vezes rodam
- Qual o p95 e o p99 de resposta, e não só a média (a média esconde exatamente o cliente insatisfeito)
- Onde está o tempo do lado do navegador: rede, render, script ou fonte
Performance também é redução de custo
Uma aplicação que responde em 200 ms em vez de 2 s não fica só mais agradável. Ela atende dez vezes mais requisições com a mesma máquina.
É comum um projeto de otimização se pagar sozinho na conta de infraestrutura do mesmo ano — antes de contabilizar o efeito na conversão e na retenção do cliente.