-
Notifications
You must be signed in to change notification settings - Fork 894
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
Slabs #2756
Slabs #2756
Conversation
33a7d08
to
5c164c0
Compare
Hiding the 'using 500.0MiB' message has broken a number of the 'exact' tests I think. |
We think we have memory fragmentation causing failed extraction in Windows containers and smaller Unix devices. Writes of both full objects and streamed objects now re-use the Vec via a sharded-slab implementation. To facilitate the more complicated memory logic, buffer limit management is now integrated into the IO Executor: the immediate executor doesn't limit at all as no outstanding buffers occur, and the threaded executor tracks both the total allocated buffers as well as whether a reusable buffer is available.
I think this is looking good. I'd just like to know what the memory consumption difference is between 1.24.1 and this for Windows runs, because my gut feeling is that it's using more RAM under Linux, though that may simply be that it's being more efficient with the RAM I have. |
I have asked someone on #2759 to try an artifact from this PR. |
I have a number of non-rustup things to do: it will be a week or so before I can sit down and dig up a massif or similar for windows. |
Based on the experience in #2759 I'm going to merge this so we can push out a 1.24.2 for beta again. |
be smarter about memory management to reduce hypothetical memory fragmentation