[performance] update go-structr and go-mutexes with memory usage improvements (#2909)

* update go-structr and go-mutexes with memory usage improvements

* bump to go-structr v0.8.4
This commit is contained in:
kim
2024-05-13 08:05:46 +00:00
committed by GitHub
parent 578a4e0cf5
commit c06e6fb656
26 changed files with 1409 additions and 163 deletions

View File

@ -214,9 +214,10 @@ func (q *Queue[T]) Debug() map[string]any {
m["indices"] = indices
for i := range q.indices {
var n uint64
for _, list := range q.indices[i].data {
n += uint64(list.len)
}
q.indices[i].data.Iter(func(_ string, l *list) (stop bool) {
n += uint64(l.len)
return
})
indices[q.indices[i].name] = n
}
q.mutex.Unlock()
@ -324,8 +325,14 @@ func (q *Queue[T]) delete(item *indexed_item) {
entry := item.indexed[len(item.indexed)-1]
item.indexed = item.indexed[:len(item.indexed)-1]
// Drop index_entry from index.
entry.index.delete_entry(entry)
// Get entry's index.
index := entry.index
// Drop this index_entry.
index.delete_entry(entry)
// Check compact.
index.compact()
}
// Drop entry from queue list.