Benchmarking

La ejecución de benchmarks en Rust se realiza a través de cargo bench, un comando específico para cargo que ejecuta todos los métodos anotados con el atributo #[bench]. Este atributo está actualmente inestable y disponible solo para el canal nightly.

Los usuarios de .NET pueden utilizar la biblioteca BenchmarkDotNet para realizar benchmarks de métodos y realizar un seguimiento de su rendimiento. El equivalente de BenchmarkDotNet es una crate llamada Criterion.

Según su documentación, Criterion recopila y almacena información estadística de ejecución en ejecución y puede detectar automáticamente regresiones de rendimiento, así como medir optimizaciones.

Usando Criterion, es posible utilizar el atributo #[bench] sin necesidad de cambiar al canal nightly.

Al igual que en BenchmarkDotNet, también es posible integrar los resultados de los benchmarks con la GitHub Action para Benchmarking Continuo. De hecho, Criterion admite múltiples formatos de salida, entre los que también se encuentra el formato bencher, que imita los benchmarks nightly de libtest y es compatible con la acción mencionada anteriormente.