Run
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
Add realm data access benchmarks
RealmLiveUnmanaged
GetAllUsableBeatmapSets()
This is commonly used in tests in a way where it's not feasible to guarantee correct results unless a refresh is called. This method shouldn't really be used outside of tests anyway, but that's for a folow-up effort.
RealmLive
CreateContext
Write
RealmContextFactory.Write
IRealmFactory
Improve carousel performance during imports and deletions
Avoid performing full filter when updating carousel beatmap sets
Avoid performing keyword filtering at song select unless keywords are specified
CarouselGroup
UpdateBeatmapSet
Create backup of databases before opening contexts
Avoids constructing a new `Realm` instance when called from the update thread without worrying about disposal.
Attempt to avoid file IO issues. Closes #16531.
beatmapSets
New version changed order.
for
foreach
<Guid,CarouselBeatmapSet>
CarouselGroupEagerSelect
AddChild
AddChildren
BeatmapSetInfo
Remove all calls to `Realm.Refresh` to fix blocking overhead from subscriptions
Use asynchronous loading for beatmap carousel again
Realm.Refresh
Turns out this is not required if realm is aware of a `SynchronizationContext`. See https://github.com/realm/realm-dotnet/discussions/2775#discussioncomment-2005412 for further reading.
Avoid constructor allocation/GC overhead in realm implicit constructors
Remove unnecessary detach operation
SkinInfo
RealmKeyBinding
BeatmapMetadata
ScoreInfo
BeatmapInfo