[#376] netmap: Make attributes a non-pointer slice

The speed of copying (which is done regulary for e.g. subnet changes)
is less, however it isn't on the hot path and the absolute time
difference is insignificant.
```
name              old time/op    new time/op    delta
NodeAttributes-8    96.2ns ± 1%   158.3ns ± 1%  +64.61%  (p=0.000 n=10+10)

name              old alloc/op   new alloc/op   delta
NodeAttributes-8     32.0B ± 0%     32.0B ± 0%     ~     (all equal)

name              old allocs/op  new allocs/op  delta
NodeAttributes-8      2.00 ± 0%      2.00 ± 0%     ~     (all equal)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-03-02 10:40:22 +03:00 committed by Alex Vanin
parent 2f0eee96fc
commit 6f4908edc2
6 changed files with 82 additions and 40 deletions

View file

@ -119,13 +119,13 @@ func GenerateAttribute(empty bool) *netmap.Attribute {
return m
}
func GenerateAttributes(empty bool) []*netmap.Attribute {
var res []*netmap.Attribute
func GenerateAttributes(empty bool) []netmap.Attribute {
var res []netmap.Attribute
if !empty {
res = append(res,
GenerateAttribute(false),
GenerateAttribute(false),
*GenerateAttribute(false),
*GenerateAttribute(false),
)
}