ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.15k stars 2.25k forks source link

Selecting all objects in editor is slow and consumes excessive memory #17712

Open 71M073J opened 2 years ago

71M073J commented 2 years ago

Type

Performance

Bug description

When selecting hitobjects in editor, selecting all (or just many) objects can use in excess of 15GB RAM for long maps. While many hitobjects are selected, both CPU and GPU usage skyrocket. This causes severely reduced FPS, and causes the editor to be practically useless.

Screenshots or videos

using this map for comparison: performance after fresh opening of the game, and loading in the editor image after selecting all hitobjects, having 3-5 fps in-game image after several alt-tabs, keeping objects selected image performance of osu stable on the same map, having all hitobjects selected image

And a further limit-test, the unforgiving marathon selecting all hitobjects on stable: image on lazer: image visible on the resource monitor: selecting all hitobjects of the unforgiving allocated 22GB of RAM before i had to kill the process because my computer was not responding.

Version

2022.405.0-lazer

Logs

performance-audio.log performance-draw.log performance-input.log performance-update.log runtime.log updater.log database.log network.log performance.log

bdach commented 2 years ago

this is a known long-standing issue but i can't actually find it in existing issues so i'm keeping it open, but i'm 99% sure it has been reported before.

there is zero evidence this is a "memory leak", though. you are selecting all objects on a marathon map, which causes many slider selection blueprints to be rendered at once. this should be optimised yes but is not per se evidence of a "leak", it could as well be normal allocations that turn excessive due to the extreme conditions.

71M073J commented 2 years ago

I checked the issues first and couldn't find any that fit the bill so I opened a new one. The memory leak I mentioned is more the increased ram usage after having selected many hitobjects, even after having deselected them and or left the editor. For that specific map (the stage) it stayed at ~600MB before selecting hitobjects, and even after deselecting them, the ram usage was not decreasing under ~1800MB. I realise I should have added a screenshot of that as well, but my pc crashed during writing this bug report for the first time and I had to redo all the screenshots.

And to specify, selecting any number of objects is slow and consumes excessive memory/cpu/gpu cycles, not only if selecting them all.

Spok5508 commented 2 months ago

I'd like to mention that moving your mouse cursor rapidly while having all notes selected in the editor, will cause the game to lag magnitudes harder and HandlePositionalInput takes up most of the CPU time.