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

logs: Output multiple log-messages at a time (optimization) #12255

Merged
merged 3 commits into from Jul 12, 2022

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented Jun 19, 2022

GUI log panel has been notorious for hurting performance in many games, although disabling it by default is quite undesirable.
Attempt to improve its performance instead.

Processing time in Brink until access violation with SPU log level set to trace:
Master: 62.6159297 seconds.
PR: 22.2147969 seconds.

@elad335 elad335 marked this pull request as ready for review June 19, 2022 15:37
@elad335 elad335 changed the title logs: Batch log messages (optimization) logs: Output multiple-log messages at a time (optimization) Jun 19, 2022
@Megamouse Megamouse added the GUI label Jun 19, 2022
@Megamouse
Copy link
Contributor

Megamouse commented Jun 19, 2022

In order to have any meaning, you should provide several benchmarks with random data. (I can't find my own anymore)
There is also a difference how long the log is, as it gets slower over time.
The benchmark needs to have multiple modes.
For example one mode should simply log a gazillion random lines that don't repeat.
Another mode should first do the same and then start stacking stuff.
etc.pp.

@Megamouse Megamouse added the Optimization Optimizes existing code label Jun 19, 2022
@elad335 elad335 changed the title logs: Output multiple-log messages at a time (optimization) logs: Output multiple log-messages at a time (optimization) Jun 19, 2022
@elad335
Copy link
Contributor Author

elad335 commented Jul 12, 2022

Well, I've configured the game Brink to use SPU Trace log level and Trace on GUI frame (extreme and rapid log spam), disabled video output, and waited for its access violation to occur with it being put to fatal so it freezes the emulation.
I've accumulated total processing time in UpdateUI since rpcs3 startup and until the access violation on both pr and master.

PR: 22.2147969 seconds.
Master: 62.6159297 seconds.

@Megamouse
Copy link
Contributor

thanks. what about stack mode etc. ?

@elad335
Copy link
Contributor Author

elad335 commented Jul 12, 2022

Stack mode now literally reduces all GUI log text update calls for a repeated message to one instead of for each repetition as master so it's obvious it's faster.

@Megamouse
Copy link
Contributor

I'd like to see the numbers anyway

@Megamouse Megamouse merged commit 74a909c into RPCS3:master Jul 12, 2022
@elad335 elad335 deleted the logs branch May 6, 2024 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GUI Optimization Optimizes existing code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants