@cryptotaxi247 / kubo / commits / 764cbe1c5

bitswap: better wantlist allocation patterns

License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Dec 5, 2017 at 09:43 UTC 764cbe1c5b9c3e7a0365cb36ef0afdd74d6767de
2 files changed +9 -16
exchange/bitswap/bitswap.go
+3 -2
@@ -451,8 +451,9 @@ func (bs *Bitswap) Close() error {
451 }
452
453 func (bs *Bitswap) GetWantlist() []*cid.Cid {
454 - var out []*cid.Cid
455 - for _, e := range bs.wm.wl.Entries() {
454 + entries := bs.wm.wl.Entries()
455 + out := make([]*cid.Cid, 0, len(entries))
456 + for _, e := range entries {
457 out = append(out, e.Cid)
458 }
459 return out
exchange/bitswap/wantlist/wantlist.go
+6 -14
@@ -126,7 +126,7 @@ func (w *ThreadSafe) Contains(k *cid.Cid) (*Entry, bool) {
126 func (w *ThreadSafe) Entries() []*Entry {
127 w.lk.RLock()
128 defer w.lk.RUnlock()
129 - var es entrySlice
129 + es := make([]*Entry, 0, len(w.set))
130 for _, e := range w.set {
131 es = append(es, e)
132 }
@@ -134,13 +134,8 @@ func (w *ThreadSafe) Entries() []*Entry {
134 }
135
136 func (w *ThreadSafe) SortedEntries() []*Entry {
137 - w.lk.RLock()
138 - defer w.lk.RUnlock()
139 - var es entrySlice
140 - for _, e := range w.set {
141 - es = append(es, e)
142 - }
143 - sort.Sort(es)
137 + es := w.Entries()
138 + sort.Sort(entrySlice(es))
139 return es
140 }
141
@@ -194,7 +189,7 @@ func (w *Wantlist) Contains(k *cid.Cid) (*Entry, bool) {
189 }
190
191 func (w *Wantlist) Entries() []*Entry {
197 - var es entrySlice
192 + es := make([]*Entry, 0, len(w.set))
193 for _, e := range w.set {
194 es = append(es, e)
195 }
@@ -202,10 +197,7 @@ func (w *Wantlist) Entries() []*Entry {
197 }
198
199 func (w *Wantlist) SortedEntries() []*Entry {
205 - var es entrySlice
206 - for _, e := range w.set {
207 - es = append(es, e)
208 - }
209 - sort.Sort(es)
200 + es := w.Entries()
201 + sort.Sort(entrySlice(es))
202 return es
203 }