提交 0f8155b6 作者: Steven Allen

bitswap: preallocate peers array on bitswap stat

Avoids lots of reallocations under a lock.

License: MIT
Signed-off-by: 's avatarSteven Allen <steven@stebalien.com>
上级 bbdbd0ac
......@@ -201,7 +201,8 @@ func (e *Engine) Peers() []peer.ID {
e.lock.Lock()
defer e.lock.Unlock()
response := make([]peer.ID, 0)
response := make([]peer.ID, 0, len(e.ledgerMap))
for _, ledger := range e.ledgerMap {
response = append(response, ledger.Partner)
}
......
......@@ -32,7 +32,10 @@ func (bs *Bitswap) Stat() (*Stat, error) {
st.DataReceived = c.dataRecvd
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())
}
sort.Strings(st.Peers)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论