Contenido del curso
Introducción
Primeras pruebas con Go
Utilizando mocks
El verdadero valor de tus pruebas
Próximos pasos
Cómo interpretar un benchmark
Contenido del curso
Cómo interpretar un benchmark
Nicolás Sañudo
studentLeonardo Valdivieso
studentRubens A. Rangel Gomez
studentJoaquin Jimenez Garcia
studentMaría Camila Lenis Restrepo
teacher++Benchmark++: prueba que mide la performance de tu código.
¿Por qué evaluar la performance? Para saber si nuestras implementaciones en código necesitan ser optimizadas o modificadas.
Esto se hace evaluando la performance antes y después de la modificación de código, y puede ser automatizado en un ciclo de CI/CD.
Ejercicio de la clase:
/** FileName: parser_test.go */ /* *testing.B de Benchmark El nombre de la función inicia con "Benchmark" */ func BenchmarkParser(b *testing.B) { c := require.New(b) body, err := ioutil.ReadFile("samples/pokeapi_response.json") c.NoError(err) var response models.PokeApiPokemonResponse err = json.Unmarshal([]byte(body), &response) c.NoError(err) // Ciclo de Benchmark for n := 0; n < b.N; n++ { _, err := ParsePokemon(response) c.NoError(err) } }
Se ejecuta con el comando:
# Consola go test ./util -run=Parser -bench= >bench.old ## Nota: -run=Parser hace referencia a BenchmarkParser() ## Nota: -bench=(espacio)>bench.old --> El espacio es obligatorio
go test ./util -run=Parser -bench ^Bench > benchmark.old
🧠 Idea principal
Interpretar un benchmark es entender los resultados de rendimiento del código para tomar decisiones de optimización, no solo ver números.
🧩 Fundamentos
1. Qué mide un benchmark
2. Propósito
3. Contexto
🔑 Puntos importantes
🎯 Conclusión
El benchmark no es solo medir, es entender y comparar para mejorar el rendimiento de forma inteligente.
No quedan muy claros ciertos temas. Como los usos de esa librería o por qué se usa b.N.
Si tuviese que explicar por qué he hecho eso en una entrevista o para qué sirve ese bucle exactamente, me quedaría en blanco. No sabría como defenderlo :/
Holaa Joaquín, Las pruebas de benchmark tienen otro objetivo más que testar que funciona el código, sino qué tan rápido es.
Por eso realizamos el ciclo for con el atributo N (viene siendo el número de veces que se va. ejecutar el ciclo para calcular el benchmark).
Por si sola, esta prueba no tiene sentido. Te da un valor y ya. Su verdadero valor llega cuando tienes con qué compararlo. Por ejemplo, qué tan rápida era esa implementación antes vs después de realizarle algunos cambios. Por eso debemos guardar los valores del benchmark para quizás revisarlo en un ciclo de CI