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

Savestates: Implement initial RAM ventilation system #14784

Merged
merged 2 commits into from
Nov 10, 2023

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented Oct 29, 2023

Savestates may weigh anywhere from few hundreds of MB to few GBs if not more. Until now, the entire file contents were kept in RAM. This applies to both reading and writing of savestates.
Implement "breathing" points where the file contents may or may move from RAM to disk when writing savestates, or simply discarding data when reading savestates. This depends on the size of contents accumulated, because frequent disk accesses have negative impacts on performance as well.
This prevents RAM shortages by reducing total memory consumption.
This pull request also affects RSX captures loading and saving in a similar manner.

@elad335 elad335 added Optimization Optimizes existing code Savestates Anything that involves savestates labels Oct 29, 2023
rpcs3/Emu/System.cpp Outdated Show resolved Hide resolved
@elad335 elad335 force-pushed the save-breathe branch 5 times, most recently from 73f161b to 8b78371 Compare November 9, 2023 20:19
@elad335 elad335 marked this pull request as ready for review November 9, 2023 20:20
@elad335
Copy link
Contributor Author

elad335 commented Nov 9, 2023

Now supports RAM ventilation for HDD0 and HDD1 disk data saving.

@elad335 elad335 force-pushed the save-breathe branch 3 times, most recently from 8d92e89 to 8df6186 Compare November 10, 2023 05:38
@elad335 elad335 merged commit 66d01b6 into RPCS3:master Nov 10, 2023
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Optimization Optimizes existing code Savestates Anything that involves savestates
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants