O desempenho de um serviço em Go depende da carga de trabalho, do tamanho dos dados, das dependências e do hardware. Os valores de QPS e latência só são significativos com uma descrição de teste reproduzível. Este guia de planejamento explica o que medir e como revisar uma proposta de otimização; ele não promete uma taxa de transferência ou um tempo de resposta.
Defina a carga de trabalho antes da meta
| Entrada | Registrar no plano de teste | Por que isso importa |
|---|---|---|
| Tráfego | Mix de solicitações, usuários simultâneos, picos e duração do teste | Um único endpoint em cache não representa o produto |
| Dados | Tamanho do conjunto de dados, formato da consulta e estado do cache | Conjuntos de dados pequenos ou aquecidos podem ocultar limites do banco de dados |
| Ambiente | CPU, memória, rede e dependências externas | Os resultados não podem ser transferidos entre ambientes sem alterações |
| Resultado | Latência por percentil, taxa de erros, taxa de transferência e uso de recursos | A latência média oculta solicitações lentas e falhas |
Meça o gargalo
Use a criação de perfis para examinar CPU, alocações e bloqueios, e use traces para acompanhar o tempo gasto ao longo de uma solicitação. Esperas por conexões de banco de dados, consultas lentas e APIs externas podem dominar mesmo quando o uso de CPU da aplicação é baixo. A criação de perfis gera sobrecarga, portanto documente seu uso e faça comparações sob condições consistentes. Consulte o guia oficial de diagnóstico do Go.
Aplique uma alteração de cada vez em relação à linha de base
As alterações possíveis incluem indexação de consultas, concorrência limitada, prazos de contexto, ajuste do pool de conexões ou armazenamento em cache. Declare o mecanismo esperado, as regras de invalidação e o comportamento em caso de falha. Compare cada alteração com a linha de base usando a mesma carga de trabalho; mantenha uma alteração somente quando o comportamento e o desempenho pretendidos melhorarem simultaneamente.
Solicite uma revisão de desempenho do backend
Prepare os endpoints afetados, o tráfego observado, amostras de latência e erros, o tamanho do banco de dados, os limites de hospedagem e qualquer método de teste anterior. Remova credenciais e dados pessoais dos traces. Conheça o desenvolvimento de backend e sistemas empresariais ou envie um resumo para a revisão de desempenho. Defina critérios de aceitação mensuráveis e um plano de reversão antes da implementação.
