Lorsque je lance mes tests de performances avec go test -v -bench=. -benchmem
, Je vois les résultats suivants.
f1 10000 120860 ns/op 2433 B/op 28 allocs/op
f2 10000 120288 ns/op 2288 B/op 26 allocs/op
Basé sur ma compréhension:
10000
est le nombre d'itérations for i := 0; i < b.N; i++ {
.XXX ns/op
est le temps approximatif nécessaire pour qu'une itération se termineMais même après lecture des documents , je ne peux pas savoir ce que B/op
et allocs/op
signifier.
Je suppose que allocs/op a quelque chose à voir avec la récupération de place et l'allocation de mémoire (moins c'est mieux).
Quelqu'un peut-il donner une belle explication de la signification de ces valeurs. Il serait également agréable de savoir pourquoi faire la montée et les principales étapes pour les réduire (je me rends compte que cela est spécifique au test, mais il peut y avoir des indices universels qui fonctionnent dans de nombreux cas)
allocs/op
signifie combien d'allocations de mémoire distinctes se sont produites par opération (itération unique).
B/op
est le nombre d'octets alloués par opération.