Comment Suivre des Benchmarks Personnalisés avec Bencher


Bencher prend en charge les harnais de benchmarking les plus populaires dès le départ, et nous sommes toujours ouverts aux suggestions pour de nouveaux adaptateurs. Cependant, il peut y avoir des situations où un harnais de benchmarking prêt à l’emploi ne répond pas à vos besoins, nécessitant la création d’un harnais de benchmarking personnalisé. Heureusement pour vous, Bencher prend également en charge l’utilisation d’un harnais de benchmarking personnalisé. La manière la plus simple d’intégrer votre harnais de benchmarking personnalisé avec Bencher est de produire du JSON au Format des Métriques de Bencher (FMB).

Ceci est un exemple de JSON BMF :

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
}
}
}

Dans cet exemple, la clé benchmark_name correspondrait au nom d’un Benchmark. Un Benchmark peut être identifié par son nom, son slug ou son UUID. L’objet benchmark_name peut contenir plusieurs clés correspondant à des noms, des slugs ou des UUID de Measure. Si la valeur spécifiée est un nom ou un slug et que la Measure n’existe pas encore, elle sera créée pour vous. En revanche, si la valeur spécifiée est un UUID, la Measure doit déjà exister. Dans cet exemple, latency est le slug de la Measure Latency intégrée. Chaque Project a par défaut une Measure Latency (c.-à-d. latency) et une Measure Throughput (c.-à-d. throughput), qui sont mesurées respectivement en nanosecond (ns) et en operations / second (ops/s). L’objet Measure contient un Metric ayant jusqu’à trois valeurs : value, lower_value et upper_value. Les valeurs lower_value et upper_value sont optionnelles.

Dans cet exemple, l’objet Measure latency contient les valeurs suivantes :

  • Une value de 88.0
  • Une lower_value de 87.42
  • Une upper_value de 88.88

Si vous aviez un script situé à ./run/my/benchmarks.sh qui exécutait vos benchmarks et imprimait les résultats sur la sortie standard en tant que JSON BMF, alors vous pourriez les suivre en utilisant bencher run et l’adaptateur json avec la commande suivante :

Terminal window
bencher run --adapter json "bencher mock"

Si vos résultats étaient stockés dans un fichier nommé results.json, alors vous pourriez utiliser l’option --file pour spécifier le chemin du fichier. Cela fonctionne à la fois avec une commande de benchmark et sans.

Avec une commande de benchmark :

Terminal window
bencher run --file results.json --adapter json "bencher mock > results.json"

Sans une commande de benchmark :

Terminal window
bencher mock > results.json && bencher run --file results.json --adapter json

Mesures Multiples

Dans le Format de Metric Bencher (BMF) JSON, l’objet Benchmark peut contenir plusieurs noms, slugs ou UUIDs de Mesure en tant que clés. Si la valeur spécifiée est un nom ou un slug et que la Mesure n’existe pas déjà, elle sera créée pour vous. Cependant, si la valeur spécifiée est un UUID, la Mesure doit déjà exister. Chaque objet Mesure doit contenir un Metric avec jusqu’à trois valeurs : value, lower_value, et upper_value. Les valeurs lower_value et upper_value sont facultatives.

Voici un exemple de BMF JSON avec plusieurs Mesures :

{
"benchmark_name": {
"latency": {
"value": 88.0,
"lower_value": 87.42,
"upper_value": 88.88
},
"throughput" {
"value": 5.55,
"lower_value": 3.14,
"upper_value": 6.30
}
}
}

Dans cet exemple, l’objet Mesure latency contient les valeurs suivantes :

  • Une value de 88.0
  • Un lower_value de 87.42
  • Un upper_value de 88.88

Et l’objet Mesure throughput contient les valeurs suivantes :

  • Une value de 5.55
  • Un lower_value de 3.14
  • Un upper_value de 6.30

Vous pouvez utiliser la sous-commande CLI bencher mock avec l’option --measure pour générer des données BMF fictives avec plusieurs Mesures. Nous l’utiliserons comme un espace réservé pour votre propre exécuteur de benchmark personnalisé. En utilisant bencher run et l’adaptateur json, nous pouvons suivre nos benchmarks avec plusieurs Mesures grâce à la commande suivante :

Terminal window
bencher run --adapter json "bencher mock --measure latency --measure throughput"

🐰 Félicitations ! Vous avez appris comment suivre des benchmarks personnalisés ! 🎉


Continuez : Comment Suivre des Benchmarks dans l’Intégration Continue ➡

🤖 Ce document a été automatiquement généré par OpenAI GPT-4/5. Il peut ne pas être précis et peut contenir des erreurs. Si vous trouvez des erreurs, veuillez ouvrir une issue sur GitHub.


Published: Sun, May 12, 2024 at 7:44:00 AM UTC | Last Updated: Fri, January 30, 2026 at 12:27:00 PM UTC