web-dev-qa-db-fra.com

Que signifie allocs / op et B / op dans la référence go?

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:

  1. 10000 est le nombre d'itérations for i := 0; i < b.N; i++ {.
  2. XXX ns/op est le temps approximatif nécessaire pour qu'une itération se termine

Mais 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)

36
Salvador Dali

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.

43
Not_a_Golfer