Cómo rastrear los tiempos de compilación de Rust en CI
Everett Pompeii
Los tiempos de compilación pueden ser una parte importante de tu tiempo de construcción, especialmente en Rust. La evaluación continua es la práctica de ejecutar benchmarks en cada conjunto de cambios para asegurarse de que los cambios no introduzcan una regresión en el rendimiento. Puedes tratar los tiempos de compilación como un benchmark y hacer un seguimiento de ellos en CI para detectar tiempos de compilación lentos. La forma más sencilla de implementar la evaluación continua para los tiempos de compilación de Rust es usar Bencher.
¿Qué es Bencher?
Bencher es un conjunto de herramientas de benchmarking continuo. ¿Alguna vez has tenido un impacto de regresión de rendimiento en tus usuarios? Bencher podría haber evitado que eso sucediera. Bencher te permite detectar y prevenir las regresiones de rendimiento antes de que lleguen a producción.
- Ejecutar: Ejecute sus benchmarks localmente o en CI usando sus herramientas de benchmarking favoritas. La CLI
bencher
simplemente envuelve su arnés de benchmarks existente y almacena sus resultados. - Seguir: Sigue los resultados de tus benchmarks con el tiempo. Monitoriza, realiza consultas y representa gráficamente los resultados utilizando la consola web de Bencher basándose en la rama de origen, el banco de pruebas y la medida.
- Capturar: Captura las regresiones de rendimiento en CI. Bencher utiliza analíticas de vanguardia y personalizables para detectar regresiones de rendimiento antes de que lleguen a producción.
Por las mismas razones que las pruebas unitarias se ejecutan en CI para prevenir regresiones funcionales, los benchmarks deberían ejecutarse en CI con Bencher para prevenir regresiones de rendimiento. ¡Los errores de rendimiento son errores!
Pasos para Bencher Cloud
- Crea una cuenta en Bencher Cloud.
- Crea un token de API y agrégalo a tu CI como un secreto.
- Crea un flujo de trabajo para tu CI, como GitHub Actions o GitLab CI/CD.
- Instala el Bencher CLI en tu flujo de trabajo de CI.
-
Compila tu código Rust con el subcomando
bencher run
en tu flujo de trabajo CI usando la bandera--build-time
con el adaptadorjson
.
Pasos para Bencher Self-Hosted
- Crear una instancia de Bencher Self-Hosted.
- Crear una cuenta en tu instancia de Bencher Self-Hosted.
- Crear un token de API y añadirlo a tu CI como un secreto.
- Crear un flujo de trabajo para tu CI, como GitHub Actions o GitLab CI/CD.
- Instalar la Bencher CLI en tu flujo de trabajo de CI. Asegúrate de que la versión de la CLI coincide con la versión de tu instancia de Bencher Self-Hosted.
-
Compila tu código Rust con el subcomando
bencher run
en tu flujo de trabajo CI usando la bandera--build-time
con el adaptadorjson
y configurando la opción--host
a la URL de tu instancia Bencher Self-Hosted.
⏱️ Tiempo de Compilación
El subcomando CLI bencher run
se puede usar para rastrear el tiempo de compilación (es decir, el tiempo de compilación) de tus entregables con la bandera --build-time
.
Bajo el capó, bencher run
muestra los resultados como Bencher Metric Format (BMF) JSON.
Por lo tanto, es una buena práctica usar explícitamente el adaptador json
.
Para más detalles, consulta cómo rastrear el tiempo de compilación.
Se recopila la Medida de build-time
(es decir, segundos (s)
).
Solo está disponible el valor de tiempo de compilación (es decir, value
).
Ni lower_value
ni upper_value
se recogen.
La Medida de build-time
no se crea por defecto para todos los Proyectos.
Sin embargo, cuando usas la bandera --build-time
, esta Medida se creará automáticamente para tu Proyecto.
Track your benchmarks in CI
Have you ever had a performance regression impact your users? Bencher could have prevented that from happening with continuous benchmarking.