No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Unit Testing en Go

Curso de Unit Testing en Go

Maria Camila Lenis

Maria Camila Lenis

Cómo interpretar un benchmark

14/15
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Benchmark: prueba que mide la performance de tu código.

  • Ejecuta tu código una X cantidad de veces en un ciclo; como resultado, te avisa que tan rápido fueron todas las ejecuciones realizadas.

¿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

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 😕