Pular para o conteúdo principal
Versão: 0.12.0

Histórico de Benchmarks

O Invowk publica relatórios de benchmark com os releases para que usuários vejam os custos atuais de inicialização e execução de comandos, e para que mantenedores inspecionem tendências de parser, discovery, runtime, memória e alocações.

Cada publicação de benchmark de release inclui estes assets:

  • Relatório Markdown: o relatório legível por pessoas.
  • Relatório JSON: o registro canônico e legível por máquinas.
  • Resumo SVG: um resumo gráfico estático para releases no GitHub.
  • Saída bruta: a saída de benchmark Go usada para inspeção mais profunda.

O relatório JSON é a fonte da verdade para o relatório Markdown, o resumo SVG, os dados históricos agregados e a página interativa de performance.

Janelas Históricas

A página de performance enfatiza três janelas:

  • Últimos 3 meses: a visão mais útil para trabalho ativo de release.
  • Último 1 ano: a visão de médio prazo para a direção geral do produto.
  • Histórico completo: todo o registro disponível, incluindo relatórios legados preenchidos quando possível.

A visualização padrão usa valores indexados. O primeiro valor da janela selecionada é tratado como 100, então pontos posteriores deixam a direção relativa fácil de escanear. Valores absolutos continuam disponíveis em tabelas e controles dos gráficos.

Lendo Tendências

Duração de benchmark, contagem de alocações e uso de memória usam a semântica de menor-é-melhor. Uma linha mais baixa ou valor menor na tabela significa que o comando ou benchmark ficou mais barato naquela medição.

Notas de ambiente importam. Versão do Go, modelo de CPU, sistema operacional, imagem do runner, modo de benchmark e contagem de amostras podem mudar os resultados. Quando o ambiente registrado difere entre releases comparados, o relatório marca a comparação como confiança reduzida em vez de apresentá-la como uma mudança limpa apenas do produto.

Relatórios legados somente em Markdown podem ser preenchidos no histórico, mas são marcados com confiança reduzida porque foram interpretados a partir de um formato legível por pessoas em vez de emitidos pelo schema JSON canônico.

Fluxo de Mantenedores

Use os alvos de benchmark ao preparar ou verificar dados de performance de release:

  • make bench-report gera artefatos Markdown, JSON, SVG e saída bruta em modo curto.
  • make bench-report-full inclui a suíte completa de benchmarks.
  • make bench-history agrega assets locais de relatório de benchmark nos dados históricos do website.
  • make bench-validate-assets valida artefatos locais de benchmark gerados.
  • make website-history-check valida os dados históricos de benchmark do website.

Os workflows de release e fallback preparam todos os tipos de assets de benchmark juntos. Se um asset estiver ausente, vazio, duplicado ou malformado, a preparação falha antes da publicação.