Cómo rastrear los tamaños de binarios de Rust en CI

Everett Pompeii

Everett Pompeii


Los tamaños binarios pueden aumentar con el tiempo, especialmente en Rust. Benchmarking Continuo es la práctica de ejecutar benchmarks en cada conjunto de cambios para asegurar que los cambios no introduzcan regresiones en el rendimiento. Puede tratar los tamaños binarios como un benchmark y rastrearlos en CI para detectar tamaños binarios grandes. La forma más fácil de implementar Benchmarking Continuo para tamaños binarios 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

  1. Crea una cuenta en Bencher Cloud.
  2. Crea un token de API y agrégalo a tu CI como un secreto.
  3. Crea un flujo de trabajo para tu CI, como GitHub Actions o GitLab CI/CD.
  4. Instala el Bencher CLI en tu flujo de trabajo de CI.
  5. Compila tu código Rust con el subcomando bencher run en tu flujo de trabajo de CI usando la opción --file-size establecida en la ruta de salida para tu binario junto con el adaptador json.

Pasos para Bencher Self-Hosted

  1. Crear una instancia de Bencher Self-Hosted.
  2. Crear una cuenta en tu instancia de Bencher Self-Hosted.
  3. Crear un token de API y añadirlo a tu CI como un secreto.
  4. Crear un flujo de trabajo para tu CI, como GitHub Actions o GitLab CI/CD.
  5. 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.
  6. Compila tu código Rust con el subcomando bencher run en tu flujo de trabajo de CI usando la opción --file-size establecida en la ruta de salida para tu binario junto con el adaptador json y configurando la opción --host a la URL de tu instancia de Bencher Self-Hosted.

⚖️ 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.

Terminal window
bencher run --file-size ./target/release/example --adapter json "cargo build --release"

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.

🤖 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.