Skip to content

performance overhaul#181

Open
realtasty wants to merge 3 commits intoKylemc1413:masterfrom
realtasty:master
Open

performance overhaul#181
realtasty wants to merge 3 commits intoKylemc1413:masterfrom
realtasty:master

Conversation

@realtasty
Copy link

added binarycache.cs that stores hashes, durations, level IDs, and info.dat contents in a single file instead of the three separate json caches, auto-migrates from the old format on first run

realtasty and others added 3 commits March 5, 2026 07:24
- added a binary cache (BinaryCache.cs) that stores hashes, durations, level IDs, and info.dat contents in a single file instead of the three separate json caches, auto-migrates from the old format on first run

- in the main loading loop, if a song folder's timestamp matches what we have cached we just reconstruct the BeatmapLevel from memory instead of touching the disk at all

- capped the parallelism to 8 threads max since on higher core count machines it was starving the main thread and causing the game to hang

- made the cache save synchronous on the background thread so it doesn't get lost if the game exits right after loading

- fixed a bug where the cache was gated behind the fullRefresh flag, meaning it was actually never used on startup since fullRefresh defaults to true

- simplified GetDirectoryHash to just use the folder's last write timestamp instead of enumerating every file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant