mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-05 09:48:06 -06:00
[performance] minimise log field allocations (#3529)
* when appending log field only do so by minimal amount * move slice utils to separate package to fix import cycle, add GrowJust() and AppendJust() functions * fix GrowJust() not returning slice of same length * improved xslices tests * make AppendJust() test check for slice contents, fix AppendJust() final copying behaviour * add a +1 with field growth to try minimise allocation for log 'msg' field
This commit is contained in:
parent
98eef328ea
commit
e3c2b790fd
29 changed files with 189 additions and 76 deletions
|
|
@ -31,7 +31,7 @@ import (
|
|||
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/log"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/state"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/util"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/util/xslices"
|
||||
"github.com/uptrace/bun"
|
||||
)
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ func (s *statusFaveDB) GetStatusFaves(ctx context.Context, statusID string) ([]*
|
|||
// Reorder the statuses by their
|
||||
// IDs to ensure in correct order.
|
||||
getID := func(f *gtsmodel.StatusFave) string { return f.ID }
|
||||
util.OrderBy(faves, faveIDs, getID)
|
||||
xslices.OrderBy(faves, faveIDs, getID)
|
||||
|
||||
if gtscontext.Barebones(ctx) {
|
||||
// no need to fully populate.
|
||||
|
|
@ -339,7 +339,7 @@ func (s *statusFaveDB) DeleteStatusFaves(ctx context.Context, targetAccountID st
|
|||
}
|
||||
|
||||
// Deduplicate determined status IDs.
|
||||
statusIDs = util.Deduplicate(statusIDs)
|
||||
statusIDs = xslices.Deduplicate(statusIDs)
|
||||
|
||||
// Invalidate any cached status faves for this status ID.
|
||||
s.state.Caches.DB.StatusFave.InvalidateIDs("ID", statusIDs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue