Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chart Loader Optimization #22

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

Electrostats
Copy link

@Electrostats Electrostats commented Nov 24, 2023

Main Changes

  • Iterating through custom songs folder only
  • Removed redundant customLevel null check
  • Add tracks to a List then return that list as enumerable
  • Removed serializer instance as it end up taking more memory anyway

Testings

All testing were done using the DLL produced by the released build on Visual Studio Community 2023 (fully updated) and the stable version of trombone champ on steam.
Multithreading testing (average time for ~1.2k charts):
Single Thread: average 3.8s
Multi Thread (Max 2): 2.4s
Multi Thread (Max 3): 2.2s
Multi Thread (Max 4): 3.6s
Multi Thread (Max 16): 7.8s

Also asked Sailent and Sierra to test Single Thread vs Multi Thread (2 and 3). Behavior was the same with 3 threads being marginally better than 2 and 2 being a huge improvement over single threading.

Sailent Results (average time for ~500 charts)
Single Thread: average 3.6s
Multi Thread (Max 2): 1.9s
Multi Thread (Max 3): 1.7s

Sierra Results (average time for ~500 charts)
Single Thread: average 3.2s
Multi Thread (Max 2): 2.7s
Multi Thread (Max 3): 2.4s

-Iterating through custom songs folder only
-Removed redundant customLevel null check
-Add tracks to a List then return that list as enumerable
-Removed serializer instance as it end up taking more memory from testing anyway

Testing showed it improved loading time for ~1.2k charts from 3.5s down to 1.9s on average
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