Cómo realizar el seguimiento del tiempo de construcción con Bencher


Bencher admite los arneses de evaluación comparativa más populares de manera predeterminada. Sin embargo, a veces deseas medir cuánto tiempo lleva compilar tus entregables, como el tiempo de compilación de un ejecutable. Afortunadamente, Bencher también admite el seguimiento de los tiempos de compilación. La forma más fácil de rastrear los tiempos de compilación es usar el subcomando CLI bencher run con el flag --build-time. Internamente, bencher run entrega los resultados como Bencher Metric Format (BMF) JSON. Por lo tanto, es una buena práctica usar explícitamente el adaptador json.

Si tuvieras un script ubicado en ./my_build_script.sh que construyera tu binario, entonces podrías rastrear el tiempo de construcción de este binario con bencher run y el adaptador json. La opción --build-time requiere un comando de benchmark.

Terminal window
bencher run --build-time --adapter json ./my_build_script.sh

El JSON BMF generado se vería así, si tu script de construcción tomó 87.0 segundos para completarse:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
}
}

Nota que el nombre del benchmark es /bin/sh -c ./my_build_script.sh. Esto se debe a que nuestro comando es solo un único argumento, por lo que bencher run usa por defecto la forma shell para la ejecución. Alternativamente, si te gustaría forzar el uso de la forma exec, puedes proporcionar múltiples argumentos o usar la opción --exec.

Terminal window
bencher run --build-time --adapter json --exec ./my_build_script.sh

Si esta construcción en forma exec tomó 86.98 segundos, entonces el JSON BMF generado se vería así:

{
"./my_build_script.sh": {
"build-time": {
"value": 86.98
}
}
}

Ahora, el nombre del benchmark es simplemente ./my_build_script.sh. El objeto ./my_build_script.sh contiene la clave build-time. build-time es el identificador para la Medida de Tiempo de Construcción Measure incorporada. La Medida de Tiempo de Construcción no se crea por defecto para todos los Proyectos. Sin embargo, cuando usas la Medida de Tiempo de Construcción, será creada automáticamente para tu Proyecto. El objeto de Medida de Tiempo de Construcción contiene un Métrica con el valor del tiempo de construcción en segundos, 87.0 y 86.98 en nuestros ejemplos.

El Tiempo de Construcción siempre se redondeará a los dos decimales más cercanos. Es decir, nunca será un decimal largo como 42.666666.

Seguimiento del Tamaño de Archivo

Es posible que desee hacer un seguimiento del tamaño del archivo de sus entregables, además de seguir cuánto tiempo tardan en compilarse. bencher run admite el seguimiento tanto de los tiempos de compilación como de los tamaños de archivo.

Si el resultado de su script de construcción ./my_build_script.sh era un binario en la ruta ./path/to/my_binary, entonces podría rastrear tanto el tiempo de compilación como el tamaño del binario con este comando:

Terminal window
bencher run --build-time --file-size ./path/to/my_binary --adapter json ./my_build_script.sh

Si my_binary tenía un tamaño de 42 bytes, el JSON de BMF generado se vería así:

{
"/bin/sh -c ./my_build_script.sh": {
"build-time": {
"value": 87.0
}
},
"my_binary": {
"file-size": {
"value": 42.0
}
}
}

🐰 ¡Felicidades! ¡Has aprendido a realizar el seguimiento de tu tiempo de construcción! 🎉


Continúa: Cómo realizar el seguimiento de Benchmarks en CI ➡

🤖 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, November 9, 2024 at 10:00:00 AM UTC