Comment utiliser Bencher pour suivre les Benchmarks
La façon la plus simple de suivre vos benchmarks est la sous-commande CLI bencher run
.
Consultez lâaperçu du benchmarking pour une explication plus approfondie.
Voici un exemple dâune sous-commande CLI bencher run
pour suivre les benchmarks sur une branche de fonctionnalité judicieusement nommée branche-fonctionnalité
:
bencher run \
--project sauver-walter-white \
--token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjbGllbnQiLCJleHAiOjE2NzQwNjA3NTAsImlhdCI6MTY3MTQ2ODc1MCwiaXNzIjoiYmVuY2hlci5kZXYiLCJzdWIiOiJzYXVsQGJldHRlcmNhbGxzYXVsLmNvbSIsIm9yZyI6bnVsbH0.CABcvWlPobAHs7wsdR6wX5p0R2jaCd7RmpsnMp5pwEc \
--adapter json \
--if-branch branche-fonctionnalité \
--else-if-branch main \
--else-branch \
--testbed phoenix \
--err \
"bencher mock"`
- Le projet doit déjà exister. Définissez le drapeau
--project
ou la variable dâenvironnementBENCHER_PROJECT
sur le slug du projet ou lâUUID. (ex:--project sauver-walter-white
) - Le token API doit déjà exister. Définissez le drapeau
--token
ou la variable dâenvironnementBENCHER_API_TOKEN
sur le token API. (ex:--token ...
) - Optionnel : Définissez le drapeau
--adapter
ou la variable dâenvironnementBENCHER_ADAPTER
sur le nom de lâadaptateur dĂ©sirĂ©. Si cela nâest pas dĂ©fini, alors lâadaptateurmagic
sera utilisé. Consultez les adaptateurs de harnais de benchmark pour un aperçu complet. (ex:--adapter json
) - Il y a plusieurs options pour définir la branche du projet. Consultez la sélection de branche pour un aperçu complet.
- Utilisez la branche actuelle si elle existe déjà . (ex:
--if-branch branche-fonctionnalité
) - Créez un clone des données de la branche cible si elle existe déjà . (ex:
--else-if-branch main
) - Sinon, crĂ©ez une nouvelle branche avec le nom fourni Ă
--if-branch
, qui seraitbranche-fonctionnalité
. (ex:--else-branch
)
- Utilisez la branche actuelle si elle existe déjà . (ex:
- Optionnel : Définissez le drapeau
--testbed
ou la variable dâenvironnementBENCHER_TESTBED
sur le slug du Testbed ou lâUUID. Le Testbed doit dĂ©jĂ exister. Si cela nâest pas dĂ©fini, alors le Testbed par dĂ©fautlocalhost
sera utilisé. (ex:--testbed phoenix
) - DĂ©finissez la commande pour Ă©chouer si une alerte est gĂ©nĂ©rĂ©e. Pour quâune alerte soit gĂ©nĂ©rĂ©e, un Seuil doit dĂ©jĂ exister. (ex:
--err
) - Exécutez vos benchmarks et générez un Rapport à partir des résultats. (ex:
"bencher mock"
)
Benchmarking Relatif
Le benchmarking relatif effectue une comparaison cĂŽte Ă cĂŽte de deux commits.
Cela peut ĂȘtre utile lorsquâon traite des environnements CI/CD bruyants,
oĂč la ressource disponible peut ĂȘtre trĂšs variable entre les exĂ©cutions.
Voici un exemple dâune sous-commande CLI bencher run
pour effectuer un benchmarking relatif sur une branche de fonctionnalité judicieusement nommée branche-fonctionnalité
:
git checkout branche-fonctionnalité
export BRANCHE_FONCTIONNALITĂ=branche-fonctionnalitĂ©-$(git rev-parse --short HEAD)
git checkout main
bencher run \
--if-branch "$BRANCHE_FONCTIONNALITĂ" \
--else-branch \
--iter 3 \
"bencher mock"
git checkout branche-fonctionnalité
bencher threshold create \
--metric-kind latency \
--branch "$BRANCHE_FONCTIONNALITĂ" \
--testbed localhost \
--test t \
--right-side 0.95
bencher run \
--if-branch "$BRANCHE_FONCTIONNALITĂ" \
--iter 3 \
--fold min \
--err \
"bencher mock"
- Passez à la branche de fonctionnalité. (ex:
branche-fonctionnalité
) - CrĂ©ez une variable dâenvironnement qui est le nom de la branche de fonctionnalitĂ© concatĂ©nĂ© avec lâID de commit git court. Câest important ! Cela garantit quâune nouvelle branche est créée Ă chaque exĂ©cution.
- Passez Ă la branche cible. (ex:
main
) - Exécutez
bencher run
pour la branche cible :- La branche donnĂ©e nâexistera pas encore. (ex:
--if-branch "$BRANCHE_FONCTIONNALITĂ"
) - Alors elle sera créée. (ex:
--else-branch
) - Exécutez les benchmarks trois fois. (ex:
--iter 3
)
- La branche donnĂ©e nâexistera pas encore. (ex:
- Passez à la branche de fonctionnalité. (ex:
branche-fonctionnalité
) - Créez un Seuil pour la branche de fonctionnalité :
- Le type de métrique pour les benchmarks est la Latence. (ex:
--metric-kind latency
) - La branche est la branche de fonctionnalitĂ© avec lâID de commit git ajoutĂ©. (ex:
--branch "$BRANCHE_FONCTIONNALITĂ"
) - Le Testbed est en cours dâexĂ©cution localement. (ex:
--testbed localhost
) - Il y a moins de 30 métriques, utilisez un test t de Student. (ex:
--test t
) - Définissez une limite supérieure de 95.0% car une latence plus grande indique une régression de performance. (ex:
--right-side 0.95
)
- Le type de métrique pour les benchmarks est la Latence. (ex:
- Exécutez
bencher run
pour la branche de fonctionnalitĂ© :- La branche existera puisquâelle vient dâĂȘtre créée. (ex:
--if-branch "$BRANCHE_FONCTIONNALITĂ"
) - Exécutez les tests trois fois. (ex:
--iter 3
) - Pliez les trois Métriques en la valeur minimale. (ex:
--fold min
) - Définissez la commande pour échouer si une alerte est générée par le Seuil. (ex:
--err
)
- La branche existera puisquâelle vient dâĂȘtre créée. (ex:
đ° FĂ©licitations ! Vous avez appris comment utiliser Bencher pour suivre les benchmarks ! đ