Commit 84389103 authored by Steven Allen's avatar Steven Allen

bitswap: preallocate peers array on bitswap stat

Avoids lots of reallocations under a lock.

License: MIT
Signed-off-by: default avatarSteven Allen <steven@stebalien.com>
parent 25520f34
...@@ -201,7 +201,8 @@ func (e *Engine) Peers() []peer.ID { ...@@ -201,7 +201,8 @@ func (e *Engine) Peers() []peer.ID {
e.lock.Lock() e.lock.Lock()
defer e.lock.Unlock() defer e.lock.Unlock()
response := make([]peer.ID, 0) response := make([]peer.ID, 0, len(e.ledgerMap))
for _, ledger := range e.ledgerMap { for _, ledger := range e.ledgerMap {
response = append(response, ledger.Partner) response = append(response, ledger.Partner)
} }
......
...@@ -32,7 +32,10 @@ func (bs *Bitswap) Stat() (*Stat, error) { ...@@ -32,7 +32,10 @@ func (bs *Bitswap) Stat() (*Stat, error) {
st.DataReceived = c.dataRecvd st.DataReceived = c.dataRecvd
bs.counterLk.Unlock() bs.counterLk.Unlock()
for _, p := range bs.engine.Peers() { peers := bs.engine.Peers()
st.Peers = make([]string, 0, len(peers))
for _, p := range peers {
st.Peers = append(st.Peers, p.Pretty()) st.Peers = append(st.Peers, p.Pretty())
} }
sort.Strings(st.Peers) sort.Strings(st.Peers)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment