Descripción General de Benchmarking


La mayoría de los resultados de las pruebas de rendimiento son efímeros. Desaparecen tan pronto como tu terminal alcanza su límite de retroceso. Algunos marcos de pruebas de rendimiento te permiten almacenar resultados en caché, pero la mayoría solo lo hace localmente. Bencher te permite rastrear tus pruebas tanto de ejecuciones locales como de CI y comparar con resultados históricos.

La forma más fácil de rastrear tus pruebas es con el subcomando CLI bencher run. Envuelve la salida de tu marco de pruebas de rendimiento existente y genera un Reporte. Este Reporte se envía al servidor API de Bencher, donde la salida del marco de pruebas de rendimiento se analiza utilizando un adaptador del marco de pruebas de rendimiento. El adaptador del marco de pruebas de rendimiento detecta todos los Benchmarks que están presentes y sus Métricas correspondientes. Estos Benchmarks y Métricas se guardan junto con el Reporte. Si hay un Umbral establecido, las nuevas Métricas se comparan con las Métricas históricas para cada Benchmark presente en el Reporte. Si se detecta una regresión, se generará una Alerta.

De aquí en adelante nos referiremos a tus “benchmarks” como “pruebas de regresión de rendimiento” para evitar cualquier confusión.

Benchmark

Un Benchmark es una prueba de regresión de rendimiento nombrada. Si la prueba de regresión de rendimiento es nueva para Bencher, entonces un Benchmark se crea automáticamente. De lo contrario, el nombre de la prueba de regresión de rendimiento se utiliza como el identificador único para el Benchmark.

Tenga cuidado al cambiar el nombre de sus pruebas de regresión de rendimiento. Necesitará renombrar manualmente el Benchmark en Bencher para que coincida con este nuevo nombre. De lo contrario, la prueba de regresión de rendimiento renombrada se considerará como un nuevo Benchmark. Esta misma advertencia también se aplica al mover algunas pruebas de regresión de rendimiento. Dependiendo del arnés de benchmark, la ruta a la prueba de regresión de rendimiento puede ser parte de su nombre.

La única excepción al aviso anterior es ignorar un Benchmark. Consulte suprimir alertas para una visión completa.

Métrica

Una Métrica es un resultado único de prueba de regresión de rendimiento en un punto en el tiempo. Se pueden recopilar hasta tres Valores para una sola Métrica: value, lower_value y upper_value. El value es obligatorio para todas las Métricas, mientras que el lower_value y el upper_value son opcionales de manera independiente. Los Valores que se recopilan se determinan por el adaptador de marco de referencia de benchmark.

Medida

Una Medida es la unidad de medida para una Métrica. Por defecto, todos los Proyectos comienzan con una Medida de Latencia y Rendimiento con unidades de nanosegundos (ns) y operaciones / segundo (ops/s) respectivamente. La Medida está determinada por el adaptador del marco de referencia de evaluación.


Reporte

Un Reporte es una colección de Benchmarks y sus Métricas para una Rama y Banco de Pruebas particulares. Los Reportes se generan con mayor frecuencia utilizando el subcomando de la CLI bencher run. Consulta cómo seguir las pruebas de regresión de rendimiento para una visión completa.

Rama

Una Rama es la referencia de git utilizada al ejecutar un Reporte (es decir, el nombre de la rama o la etiqueta). Por defecto, todos los Proyectos comienzan con una Rama main. Al usar el subcomando de CLI bencher run, main es la Rama predeterminada si no se proporciona una. Consulta selección de ramas para obtener una visión completa.

La Cabeza de una Rama es la instancia más reciente de la Rama. Hace referencia al Punto de Inicio más reciente, si existe alguno. Cada vez que una Rama obtiene un nuevo Punto de Inicio, adquiere una nueva Cabeza. Consulta selección de rama para una visión completa.

Punto de Inicio

Una Rama puede tener un Punto de Inicio. Un Punto de Inicio es otra Rama en una versión específica (y git hash, si está disponible). Las Métricas Históricas y, opcionalmente, los Umbrales se copian desde el Punto de Inicio. Consulta selección de ramas para obtener una visión completa.

Testbed

Un Testbed es el nombre del entorno de pruebas utilizado al ejecutar un Reporte. Por defecto, todos los Proyectos comienzan con un Testbed localhost. Al usar el subcomando de CLI bencher run, localhost es el Testbed predeterminado si no se proporciona uno.


Umbral

Un Umbral se utiliza para detectar regresiones de rendimiento. Un Umbral se asigna a una combinación única de: Rama, Banco de pruebas y Medida. Consulta umbrales para una visión completa.

Test

Una prueba es utilizada por un umbral para detectar regresiones de rendimiento. La combinación de una prueba y sus parámetros se llama un modelo. Consulta umbrales para obtener una visión completa.

Modelo

Un Modelo es la combinación de una Prueba y sus parámetros para un Umbral. Un Modelo debe tener un Límite Inferior, un Límite Superior, o ambos.

  • Límite Inferior
    • Se utiliza un Límite Inferior cuando un valor menor indicaría una regresión de rendimiento, como ocurre con la Medida de Rendimiento.
  • Límite Superior
    • Se utiliza un Límite Superior cuando un valor mayor indicaría una regresión de rendimiento, como ocurre con la Medida de Latencia.

Cada Límite se utiliza para calcular un Límite de Frontera. Luego, cada nueva Métrica se verifica contra cada Límite de Frontera. Se genera una Alerta cuando una nueva Métrica está por debajo de un Límite Inferior de Frontera o por encima de un Límite Superior de Frontera. Vea umbras para una visión completa.

Límite de Frontera

Un Límite de Frontera es el valor calculado a partir de una Frontera Inferior o una Frontera Superior. Se utiliza para comparar con una nueva Métrica. Se genera una Alerta cuando una nueva Métrica está por debajo de un Límite de Frontera Inferior o por encima de un Límite de Frontera Superior. Consulta umbrales para una descripción completa.

Alerta

Se genera una Alerta cuando una nueva Métrica falla una Prueba al estar por debajo de un Límite Inferior o por encima de un Límite Superior. Consulta umbral para una visión general completa.



🐰 ¡Felicitaciones! ¡Has aprendido todo sobre el seguimiento de benchmarks pruebas de regresión de rendimiento! 🎉


Continúa: bencher run Subcomando CLI ➡

🤖 Este documento fue generado automáticamente por OpenAI GPT-4. Puede que no sea exacto y contenga errores. Si encuentra algún error, abra un problema en GitHub.


Published: Sat, August 12, 2023 at 4:07:00 PM UTC | Last Updated: Thu, October 10, 2024 at 7:50:00 AM UTC