mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 06:52:25 -05:00
update go-structr -> v0.8.2 which includes some minor memory usage improvements (#2904)
This commit is contained in:
parent
45f4afe60e
commit
3554991444
6 changed files with 29 additions and 5 deletions
14
vendor/codeberg.org/gruf/go-structr/cache.go
generated
vendored
14
vendor/codeberg.org/gruf/go-structr/cache.go
generated
vendored
|
|
@ -556,6 +556,12 @@ func (c *Cache[T]) Cap() int {
|
|||
func (c *Cache[T]) store_value(index *Index, key Key, value T) {
|
||||
// Alloc new index item.
|
||||
item := new_indexed_item()
|
||||
if cap(item.indexed) < len(c.indices) {
|
||||
|
||||
// Preallocate item indices slice to prevent Go auto
|
||||
// allocating overlying large slices we don't need.
|
||||
item.indexed = make([]*index_entry, 0, len(c.indices))
|
||||
}
|
||||
|
||||
// Create COPY of value.
|
||||
value = c.copy(value)
|
||||
|
|
@ -622,6 +628,14 @@ func (c *Cache[T]) store_error(index *Index, key Key, err error) {
|
|||
|
||||
// Alloc new index item.
|
||||
item := new_indexed_item()
|
||||
if cap(item.indexed) < len(c.indices) {
|
||||
|
||||
// Preallocate item indices slice to prevent Go auto
|
||||
// allocating overlying large slices we don't need.
|
||||
item.indexed = make([]*index_entry, 0, len(c.indices))
|
||||
}
|
||||
|
||||
// Set error val.
|
||||
item.data = err
|
||||
|
||||
// Append item to index.
|
||||
|
|
|
|||
6
vendor/codeberg.org/gruf/go-structr/item.go
generated
vendored
6
vendor/codeberg.org/gruf/go-structr/item.go
generated
vendored
|
|
@ -51,8 +51,12 @@ func (i *indexed_item) drop_index(entry *index_entry) {
|
|||
continue
|
||||
}
|
||||
|
||||
// Unset tptr value to
|
||||
// ensure GC can take it.
|
||||
i.indexed[x] = nil
|
||||
|
||||
// Move all index entries down + reslice.
|
||||
copy(i.indexed[x:], i.indexed[x+1:])
|
||||
_ = copy(i.indexed[x:], i.indexed[x+1:])
|
||||
i.indexed = i.indexed[:len(i.indexed)-1]
|
||||
break
|
||||
}
|
||||
|
|
|
|||
6
vendor/codeberg.org/gruf/go-structr/queue.go
generated
vendored
6
vendor/codeberg.org/gruf/go-structr/queue.go
generated
vendored
|
|
@ -276,6 +276,12 @@ func (q *Queue[T]) pop_n(n int, next func() *list_elem) []T {
|
|||
|
||||
func (q *Queue[T]) index(value T) *indexed_item {
|
||||
item := new_indexed_item()
|
||||
if cap(item.indexed) < len(q.indices) {
|
||||
|
||||
// Preallocate item indices slice to prevent Go auto
|
||||
// allocating overlying large slices we don't need.
|
||||
item.indexed = make([]*index_entry, 0, len(q.indices))
|
||||
}
|
||||
|
||||
// Set item value.
|
||||
item.data = value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue