Cómo Seguir Benchmarks Personalizados con Bencher
Bencher soporta los arneses de evaluación comparativa más populares listos para usar, y siempre estamos abiertos a sugerencias para nuevos adaptadores. Sin embargo, puede haber situaciones en las que un arnés de evaluación comparativa listo para usar no se ajuste a sus necesidades, lo que hace necesaria la creación de un arnés de evaluación comparativa personalizado. Por suerte, Bencher también soporta el uso de un arnés de evaluación comparativa personalizado. La forma más fácil de integrar su arnés de evaluación personalizado con Bencher es producir JSON en el Formato de Métrica de Bencher (BMF).
Este es un ejemplo de BMF JSON:
En este ejemplo, la clave benchmark_name
sería el nombre de un Benchmark.
Los nombres de Benchmark pueden ser cualquier cadena no vacía de hasta 1024 caracteres.
El objeto benchmark_name
puede contener múltiples nombres, slugs o UUIDs de Medida como claves.
Si el valor especificado es un nombre o slug y la Medida no existe previamente, se creará para usted.
Sin embargo, si el valor especificado es un UUID entonces la Medida debe existir previamente.
En este ejemplo, latency
es el slug para la Medida de Latencia integrada.
Cada Proyecto por defecto tiene una Medida de Latencia (es decir latency
) y Rendimiento (es decir throughput
),
que se miden en nanosegundo (ns)
y operaciones / segundo (ops/s)
respectivamente.
El objeto Medida contiene una Métrica con hasta tres valores:
value
, lower_value
y upper_value
.
Los valores lower_value
y upper_value
son opcionales.
En este ejemplo, el objeto Medida latency
contiene los siguientes valores:
- Un
value
de88.0
- Un
lower_value
de87.42
- Un
upper_value
de88.88
Si tuvieras un script ubicado en ./run/my/benchmarks.sh
que ejecutara tus referencias de medición
y mostrara los resultados en la salida estándar como JSON de BMF,
entonces podrías rastrearlos usando
bencher run
y el adaptador json
con el siguiente comando:
Si sus resultados se almacenaran en un archivo llamado results.json
,
entonces podría usar la opción --file
para especificar la ruta del archivo.
Esto funciona tanto con un comando de benchmark como sin uno.
Con un comando de benchmark:
Sin un comando de benchmark:
Múltiples Medidas
En Bencher Metric Format (BMF) JSON
el objeto Benchmark puede contener múltiples nombres, slugs o UUIDs de Measure como claves.
Si el valor especificado es un nombre o slug y la Medida no existe ya, se creará para ti.
Sin embargo, si el valor especificado es un UUID, entonces la Medida debe existir ya.
Cada objeto de Medida debe contener un Metric con hasta tres valores:
value
, lower_value
, y upper_value
.
Los valores lower_value
y upper_value
son opcionales.
Este es un ejemplo de BMF JSON con múltiples Medidas:
En este ejemplo, el objeto de Medida latency
contiene los siguientes valores:
- Un
value
de88.0
- Un
lower_value
de87.42
- Un
upper_value
de88.88
Y el objeto de Medida throughput
contiene los siguientes valores:
- Un
value
de5.55
- Un
lower_value
de3.14
- Un
upper_value
de6.30
Puedes usar el subcomando CLI bencher mock
con la opción --measure
para generar datos ficticios BMF con múltiples Medidas.
Lo utilizaremos como un marcador de posición para tu propio ejecutor de benchmark personalizado.
Usando bencher run
y el adaptador json
podemos rastrear nuestros benchmarks con múltiples Medidas con el siguiente comando:
🐰 ¡Felicidades! Has aprendido cómo seguir benchmarks personalizados. 🎉