refactor Cap to use heap.Pop() instead of sorting the whole heap

This commit is contained in:
colinlyguo 2024-02-13 21:35:00 +08:00
parent d5ae16c486
commit e8b23da4cd
No known key found for this signature in database
GPG key ID: 82E123BE1B68288B

View file

@ -160,12 +160,11 @@ func (m *sortedMap) Cap(threshold int) types.Transactions {
// Otherwise gather and drop the highest nonce'd transactions
var drops types.Transactions
sort.Sort(*m.index)
for size := len(m.items); size > threshold; size-- {
drops = append(drops, m.items[(*m.index)[size-1]])
delete(m.items, (*m.index)[size-1])
dropIdx := m.index.Pop().(uint64)
drops = append(drops, m.items[dropIdx])
delete(m.items, dropIdx)
}
*m.index = (*m.index)[:threshold]
// If we had a cache, shift the back
m.cacheMu.Lock()