microsoft / microsoft/snmalloc
Explore: Alter handling of free batches.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 2k
- Forks
- 138
- Avg merge
- 11h 19m
- Merged PRs (30d)
- 5
Description
In #724, we added a limit to how many remote frees could be processed in one go. This should improve general performance of batched frees.
As part of this PR, there was a discussion about taking this further. This issue is raised to not lose that discussion.
The key ideas were
- Process varying batch sizes based on how slow a path we are on.
- Split the remote message queues by sizeclass
- This would allow us to quickly find messages containing the sizes we are using at the moment.
- When we are about to use the backend, process everything to see if we can consolidate existing memory to serve the request.
I am sure there is much more to discuss here.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading issue #724 and the discussion that led to the current limit on remote frees. Then inspect the remote-free batching and message-queue paths described here, including sizeclass handling. Done would require an agreed design for variable batch sizes and split queues, since this issue does not define an implementation or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100