Ejemplo simple de profiling benchmark:
La creación de perfiles de benchmarks ayuda a identificar áreas de optimización, ya sea para mejorar el rendimiento de la CPU o reducir el consumo de memoria. Es importante destacar que los benchmarks y los perfiles son más efectivos cuando se utilizan iterativamente durante el proceso de desarrollo para supervisar y mejorar el rendimiento del código.
Código de ejemplo
|
package main import ( "crypto/rand" "crypto/sha256" "testing" ) func MyFunction() []byte { data := make([]byte, 1024) rand.Read(data) return sha256.Sum256(data)[:] } func BenchmarkMyFunction(b *testing.B) { for i := 0; i < b.N; i++ { MyFunction() } } |
Ejecutar benchmark
|
go test -bench |
Perfilar uso de CPU
|
go test -bench . -cpuprofile cpu.prof go tool pprof cpu.prof |
Perfilar uso de memoria
|
go test -bench . -memprofile mem.prof go tool pprof mem.prof |