Adaptadores de Arnés de Referencia


Los adaptadores convierten la salida del arnés de referencia en el formato JSON de Métricas de Bencher (Bencher Metric Format (BMF) JSON). Los adaptadores se ejecutan en el servidor API cuando se recibe un nuevo informe. Consulta el resumen de benchmarking para más detalles. Un adaptador puede ser especificado para el subcomando CLI bencher run con la opción --adapter. Si no se especifica un adaptador, el adaptador magic se utiliza por defecto.

🪄 Magia (predeterminado)

El adaptador Magic (magic) es un superconjunto de todos los demás adaptadores. Por esa razón, es el adaptador predeterminado para bencher run. Sin embargo, el adaptador magic solo debe usarse para exploración.

Para obtener los mejores resultados, deberías especificar un adaptador de arnés de referencia:


{…} JSON

El adaptador JSON (json) espera Bencher Metric Format (BMF) JSON. Es perfecto para integrar arneses de referencia personalizados con Bencher. Para más detalles vea cómo rastrear referencias personalizadas y la referencia BMF JSON.

⚖️ Tamaño del Archivo

El subcomando CLI bencher run puede usarse para rastrear el tamaño del archivo (es decir, tamaño binario) de tus entregables con la opción --file-size. La opción --file-size espera una ruta de archivo al archivo cuyo tamaño será medido. Por debajo, bencher run muestra los resultados comoFormato de Métrica de Bencher (BMF) JSON. Por lo tanto, es una buena práctica usar explícitamente el adaptador json. Para más detalles vea cómo rastrear el tamaño del archivo.

La Medida file-size (es decir, bytes (B)) se recopila. Solo está disponible el valor del tamaño del archivo (es decir, value). Ni lower_value ni upper_value se recopilan. La Medida file-size no se crea por defecto para todos los Proyectos. Sin embargo, cuando usas la opción --file-size, esta Medida se creará automáticamente para tu Proyecto.

La opción --file-size se puede usar varias veces para realizar un seguimiento de varios tamaños de archivo.


#️⃣ C# DotNet

El adaptador C# DotNet (c_sharp_dot_net) espera la salida de BenchmarkDotNet en formato JSON (es decir, --exporters json). Se recopila la medida de latencia (es decir, nanosegundos (ns)).

Hay dos opciones para la métrica:

  • mean (predeterminado): Los valores lower_value y upper_value son una desviación estándar por debajo y por encima de la media (es decir, value) respectivamente.
  • median: Los valores lower_value y upper_value son un rango intercuartil por debajo y por encima de la mediana (es decir, value) respectivamente.

Esto se puede especificar en el subcomando CLI ejecución del evaluador con la opción --average.


➕ C++ Catch2

El Adaptador C++ Catch2 (cpp_catch2) espera la salida de Catch2. La Medida de latencia (es decir, nanosegundos (ns)) se recopila. Los lower_value y upper_value son una desviación estándar por debajo y por encima de la media (es decir, value) respectivamente.

➕ C++ Google

El Adaptador de Google C++ (cpp_google) espera salida de Google Benchmark en formato JSON (es decir, --benchmark_format=json). Se recopila la medida de latencia (es decir, nanosegundos (ns)). Solo está disponible el promedio (es decir, value). No hay lower_value ni upper_value.


🕳 Go Bench

El adaptador Go Bench (go_bench) espera la salida de go test -bench. Se recopila la medida de latencia (es decir, nanosegundos (ns)). Solo está disponible el promedio (es decir, value). No hay lower_value y upper_value.


☕️ Java JMH

El Adaptador Java JMH (java_jmh) espera la salida de Java Microbenchmark Harness (JMH) en formato JSON (es decir, -rf json). Se pueden recoger medidas de latencia y rendimiento (es decir, nanosegundos (ns) y operaciones / segundo (ops/sec)). El lower_value y upper_value son los intervalos de confianza inferior y superior para la media (es decir, value) respectivamente.


🕸 Prueba de rendimiento de JavaScript

El Adaptador de Pruebas de Rendimiento de JavaScript (js_benchmark) espera salida de Benchmark.js. La Medida de throughput (es decir, operaciones / segundo (ops/sec)) es recopilada. Los valores lower_value y upper_value son el margen de error relativo por debajo y por encima de la mediana (es decir, value) respectivamente.

🕸 Tiempo en JavaScript

El Adaptador de Tiempo JavaScript (js_time) espera la salida de console.time/console.timeEnd. La medida de latencia (es decir, nanosegundos (ns)) es recopilada. Solo el tiempo de operación (es decir, valor) está disponible. No hay lower_value ni upper_value.


🐍 ASV de Python

El Adaptador ASV de Python (python_asv) espera la salida de la línea de comandos airspeed velocity CLI asv run. La medida de latencia (es decir, nanosegundos (ns)) es recopilada. El valor_inferior y el valor_superior son el rango intercuartílico por debajo y por encima del mediano (es decir, valor) respectivamente.

🐍 Python Pytest

El Adaptador Pytest de Python (python_pytest) espera la salida de pytest-benchmark en formato JSON (es decir, --benchmark-json results.json). Esta salida JSON se guarda en un archivo, por lo que debes usar el argumento --file de la CLI bencher run para especificar la ruta de ese archivo (es decir, bencher run --file results.json "pipenv run pytest --benchmark-json results.json benchmarks.py"). Se recopila la Medida latency (es decir, nanosegundos (ns)).

Hay dos opciones para la Métrica:

  • mean (predeterminado): Los valores lower_value y upper_value son una desviación estándar por debajo y por encima de la media (es decir, value) respectivamente.
  • median: Los valores lower_value y upper_value son un rango intercuartílico por debajo y por encima de la mediana (es decir, value) respectivamente.

Esto se puede especificar en el subcomando CLI de bencher run con el argumento opcional --average.


♦️ Ruby Benchmark

El adaptador de Benchmark de Ruby (ruby_benchmark) espera la salida del módulo Benchmark para los métodos #bm, #bmbm y #benchmark. Se requiere una etiqueta para cada benchmark. Se recopila la medida de latencia (es decir, nanosegundos (ns)). Solo está disponible el valor reportado (es decir, valor). No hay lower_value ni upper_value.


🦀 Banco de Rust

El Adaptador de Banco Rust (rust_bench) espera la salida de libtest bench. La Medida de latencia (es decir, nanosegundos (ns)) se recopila. El lower_value y upper_value son la desviación por debajo y por encima de la mediana (es decir, value) respectivamente.

🦀 Adaptador de Criterio para Rust

El Adaptador de Criterio para Rust (rust_criterion) espera la salida de Criterion. La medida de latencia (es decir, nanosegundos (ns)) es recogida. El lower_value y el upper_value son los límites inferior y superior de la pendiente (si está disponible) o de la media (si no lo está) (es decir, value) respectivamente.

🦀 Rust Iai

El adaptador Rust Iai (rust_iai) espera salida de Iai. Las medidas de instructions, l1_access, l2_access, ram_access y estimated_cycles se recopilan. Solo estas medidas (es decir, value) están disponibles. No hay medidas de lower_value y upper_value. Las Medidas para este adaptador no se crean por defecto para todos los proyectos. Sin embargo, cuando usas este adaptador, estas Medidas se crearán automáticamente para tu Proyecto.

🦀 Rust Iai-Callgrind

El adaptador de Rust Iai (rust_iai_callgrind) espera la salida de Iai-Callgrind. Se recopilan las medidas de instructions, l1_access, l2_access, ram_access, total_accesses y estimated_cycles. Solo estas medidas (es decir, value) están disponibles. No hay medidas de lower_value ni upper_value. Las medidas para este adaptador no se crean por defecto para todos los proyectos. Sin embargo, cuando utilizas este adaptador, estas medidas se crearán automáticamente para tu proyecto.


❯_️ Shell Hyperfine

El adaptador Shell Hyperfine (shell_hyperfine) espera la salida de Hyperfine en formato JSON (es decir, --export-json results.json). Esta salida JSON se guarda en un archivo, por lo que debes usar el argumento --file de la CLI bencher run para especificar la ruta de ese archivo (es decir, bencher run --file results.json "hyperfine --export-json results.json 'sleep 0.1'"). Se recopila la Medida de latencia (es decir, nanosegundos (ns)).

Hay dos opciones para la Métrica:

  • mean (predeterminado): Los valores lower_value y upper_value están una desviación estándar por debajo y por encima de la media (es decir, value) respectivamente.
  • median: Los valores lower_value y upper_value son los valores min y max respectivamente.

Esto se puede especificar en el subcomando de la CLI bencher run con la opción --average.



🐰 ¡Felicidades! ¡Has aprendido todo sobre los adaptadores de arneses de referencia! 🎉


Continúa: Umbrales y Alertas ➡

🤖 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: Fri, October 27, 2023 at 8:40:00 AM UTC | Last Updated: Thu, May 9, 2024 at 5:17:00 PM UTC