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

Progressively worse stuttering from UR counter with very high note count maps #30635

Open
longnguyen2004 opened this issue Nov 15, 2024 · 1 comment · May be fixed by #30868
Open

Progressively worse stuttering from UR counter with very high note count maps #30635

longnguyen2004 opened this issue Nov 15, 2024 · 1 comment · May be fixed by #30868

Comments

@longnguyen2004
Copy link

Type

Performance

Bug description

Observed this while playing casually. Towards the end of the map, every note hit causes a very noticeable stuttering

Reproduction step:

  • Play https://osu.ppy.sh/beatmapsets/1956376#mania/4094064 on Auto
  • Seek to near the end of the map
  • Add the UR counter. Observes that each note hit will result in a spike on the Update frametime graph
  • Remove the UR counter. Observes that the spikes are gone (the remaining spikes seem to be GC related and can be ignored)

Screenshots or videos

ur.counter.stutter.mp4

Version

2024.1009.1

Logs

1731660081.network.log
1731660081.performance.log
1731660081.runtime.log
1731660081.auth.log
1731660081.input.log

@smoogipoo
Copy link
Contributor

smoogipoo commented Nov 15, 2024

There's two issues here:

The raw performance of the method itself is pretty bad. A lot of time is spent checking types:
image
This could be fixed by something like this: https://gist.github.com/smoogipoo/fda9c73371309a2a581c726a12bceeb9, which I'd say is something we can apply with little thought.

That change will already make it somewhat reasonable for one displayed combo counter. The rest is because it's running over every single HitEvent every judgement, once per counter. Perhaps this could be improved by storing incremental data locally or via ScoreProcessor, but there comes the question of handling rewind (maybe you don't and static calculation?).

Leaving this here for now as I'm reprioritising, for if anyone else wants to take the lead.

@smoogipoo smoogipoo removed their assignment Nov 15, 2024
@peppy peppy linked a pull request Nov 25, 2024 that will close this issue
@peppy peppy self-assigned this Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants