STL: Improve sentinel node memory consumption
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
Description
Currently, our sentinel nodes use the same representation as ordinary nodes. That means that each sentinel node contains space for an element that will never be constructed. We should investigate improving this for vNext.
(This is orthogonal to whether the sentinel nodes are dynamically allocated or container-internal, although it matters much more for the latter choice.)
vNext note: Resolving this issue will require breaking binary compatibility. We won't be able to accept pull requests for this issue until the vNext branch is available. See #169 for more information.
Contributor guide
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 the sentinel-node representation described in this issue and the vNext context in #169; no implementation files or tests are identified. Define a representation that avoids storage for an unconstructed element, then verify the resulting memory use and compatibility expectations once the vNext branch is available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100