Como usar o Bencher para Acompanhar Benchmarks
A maneira mais fácil de acompanhar seus benchmarks é o subcomando CLI bencher run
. Veja a visão geral do benchmarking para uma explicação mais detalhada.
Este é um exemplo de um subcomando CLI bencher run
para acompanhar benchmarks em uma branch de funcionalidade adequadamente nomeada feature-branch
:
bencher run \
--project save-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch feature-branch \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
- O Projeto deve já existir. Defina a flag
--project
ou a variável de ambienteBENCHER_PROJECT
para o slug do Projeto ou UUID. (ex:--project save-walter-white
) - O token da API já deve existir. Defina a flag
--token
ou a variável de ambienteBENCHER_API_TOKEN
para o token da API. (ex:--token ...
) - Opcional: Defina a flag
--adapter
ou a variável de ambienteBENCHER_ADAPTER
para o nome do adaptador desejado. Se isso não for definido, o Adaptadormagic
será usado. Veja adaptadores de suporte de benchmark para uma visão geral completa. (ex:--adapter json
) - Existem várias opções para definir a branch do projeto. Veja seleção de branch para uma visão geral completa.
- Use a branch atual se ela já existir. (ex:
--if-branch feature-branch
) - Crie um clone dos dados da branch alvo se eles já existirem. (ex:
--else-if-branch main
) - Caso contrário, crie uma nova branch com o nome fornecido para
--if-branch
, que seriafeature-branch
. (ex:--else-branch
)
- Use a branch atual se ela já existir. (ex:
- Opcional: Defina a flag
--testbed
ou a variável de ambienteBENCHER_TESTBED
para o slug do Testbed ou UUID. O Testbed já deve existir. Se isso não for definido, então o Testbedlocalhost
padrão será usado. (ex:--testbed phoenix
) - Defina o comando para falhar se um Alerta for gerado. Para que um Alerta seja gerado, um Threshold já deve existir. (ex:
--err
) - Execute seus benchmarks e gere um Relatório a partir dos resultados. (ex:
"bencher mock"
)
Benchmarking Relativo
Benchmarking relativo executa uma comparação lado a lado de dois commits.
Isso pode ser útil ao lidar com ambientes CI/CD barulhentos,
onde o recurso disponível pode variar muito entre execuções.
Este é um exemplo de um subcomando CLI bencher run
para executar benchmarking relativo em uma branch de funcionalidade adequadamente nomeada feature-branch
:
git checkout feature-branch
export FEATURE_BRANCH=feature-branch-$(git rev-parse --short HEAD)
git checkout main
bencher run \
--if-branch "$FEATURE_BRANCH" \
--else-branch \
--iter 3 \
"bencher mock"
git checkout feature-branch
bencher threshold create \
--metric-kind latency \
--branch "$FEATURE_BRANCH" \
--testbed localhost \
--test t \
--right-side 0.95
bencher run \
--if-branch "$FEATURE_BRANCH" \
--iter 3 \
--fold min \
--err \
"bencher mock"
- Faça checkout na branch de funcionalidade. (ex:
feature-branch
) - Crie uma variável de ambiente que seja o nome da branch de funcionalidade concatenado com o ID do commit git curto. Isso é importante! Garante que para cada execução uma nova branch é criada.
- Faça checkout na branch alvo. (ex:
main
) - Execute
bencher run
para a branch alvo:- A branch dada ainda não existirá. (ex:
--if-branch "$FEATURE_BRANCH"
) - Então será criada. (ex:
--else-branch
) - Execute os benchmarks três vezes. (ex:
--iter 3
)
- A branch dada ainda não existirá. (ex:
- Faça checkout na branch de funcionalidade. (ex:
feature-branch
) - Crie um Threshold para a branch de funcionalidade:
- O Tipo de Métrica para os benchmarks é Latência. (ex:
--metric-kind latency
) - A Branch é a branch de funcionalidade com o ID do commit git adicionado. (ex:
--branch "$FEATURE_BRANCH"
) - O Testbed está sendo executado localmente. (ex:
--testbed localhost
) - Existem menos de 30 métricas, use um teste t de Student. (ex:
--test t
) - Defina um limite à direita de 95,0% porque uma Latência maior indica uma regressão de desempenho. (ex:
--right-side 0.95
)
- O Tipo de Métrica para os benchmarks é Latência. (ex:
- Execute
bencher run
para a branch de funcionalidade:- A Branch existirá pois acabou de ser criada. (ex:
--if-branch "$FEATURE_BRANCH"
) - Execute os testes três vezes. (ex:
--iter 3
) - Dobre todas as três métricas para o valor mínimo. (ex:
--fold min
) - Defina o comando para falhar se um Alerta for gerado pelo Threshold. (ex:
--err
)
- A Branch existirá pois acabou de ser criada. (ex:
🐰 Parabéns! Você aprendeu como usar o Bencher para acompanhar benchmarks! 🎉
Adicione o Bencher às Ações do GitHub ➡
Adicione o Bencher ao GitLab CI/CD ➡
🤖 Este documento foi gerado automaticamente pelo OpenAI GPT-4. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.