JuliaCollections / JuliaCollections/DataStructures.jl
Fixed size container for buffer in CircularDeque
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 745
- Forks
- 261
- PR merge metrics
- No merged PRs in 30d
Description
Would it make sense to switch from Vector as the container for buffer of CircularDeque (and potentially other fixed size containers)? Since we have Memory{T} and FixedSizeArray they could eliminate a pointer jump. Or the performance gain is expected to be negligible?
The concerns I see are:
- compatibility with older julia versions and
Base._unsetindex!trickery required for proper garbage collection as mentioned in https://github.com/JuliaCollections/DataStructures.jl/issues/884 and also discussed in https://github.com/julialang/julia/issues/58943
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
Read the CircularDeque buffer implementation and compare its Vector storage with Memory{T} and FixedSizeArray. Investigate the compatibility and Base._unsetindex! garbage-collection concerns in the linked Julia issues; done means an evidence-backed decision on whether to make the container change and what implementation scope it requires.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100