-
Notifications
You must be signed in to change notification settings - Fork 552
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
Improve disk IO speeds, optimize FAT Implementation memory allocation & speeds #2841
Merged
valentinbreiz
merged 15 commits into
CosmosOS:master
from
GoldenretriverYT:reduce-io-overhead
Dec 11, 2023
Merged
Improve disk IO speeds, optimize FAT Implementation memory allocation & speeds #2841
valentinbreiz
merged 15 commits into
CosmosOS:master
from
GoldenretriverYT:reduce-io-overhead
Dec 11, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The FatStream already performs a read. Removing this did not cause any tests to fail.
GoldenretriverYT
changed the title
Heavily improve IO read speeds
Heavily improve IO read speeds & reduce memory allocation by file writes / reads
Dec 10, 2023
Draft for now cause I will look into speeding up writes too |
The FatStream already performs a read. Removing this did not cause any tests to fail.
GoldenretriverYT
changed the title
Heavily improve IO read speeds & reduce memory allocation by file writes / reads
Improve disk IO speeds, optimize FAT Implementation memory allocation & speeds
Dec 10, 2023
Samma2009
approved these changes
Dec 11, 2023
valentinbreiz
approved these changes
Dec 11, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great optimizations thanks for this
Awesome work! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current IO was heavily limited by the overhead added by IL2CPU.
My benchmark, which certainly shouldnt fall out this heavy due to sounding more like a write operation, creating as many files as possible within 30 seconds had following results:
Pre optimization: 9 files within 30 seconds created on Fat32 using File.Create
After: 73 files within 30 seconds created on Fat32 using File.Create
I also ran all the FAT Tests:
Pre: Took 157s
After: Took 45s
After added the fixes to reduce memory allocation, writing a 32kb file (using FileStream, not including the creation of the FileStream) had following results:
From 27586560 bytes to 102400 bytes. Not perfect, but certainly an improvement!