[#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

@ -73,7 +73,7 @@ type Attribute struct {
type NodeInfo struct {
publicKey []byte
addresses []string
attributes []*Attribute
attributes []Attribute
state NodeState
}
@ -444,7 +444,7 @@ func (ni *NodeInfo) IterateAddresses(f func(string) bool) {
}
}
func (ni *NodeInfo) GetAttributes() []*Attribute {
func (ni *NodeInfo) GetAttributes() []Attribute {
if ni != nil {
return ni.attributes
}
@ -452,7 +452,7 @@ func (ni *NodeInfo) GetAttributes() []*Attribute {
return nil
}
func (ni *NodeInfo) SetAttributes(v []*Attribute) {
func (ni *NodeInfo) SetAttributes(v []Attribute) {
if ni != nil {
ni.attributes = v
}