TL;DR
We have ConcurrentImmix and StickyImmix, but having the combination will be useful for use-cases that have higher allocation load than ConcurrentImmix can support while still valuing low pause times.
Goals
- Low pause times of ConcurrentImmix
- Taking advantage of Generational hypothesis
Success Metric
The GC is implimented
Motivation
This will be a useful collector for languages as an intermediate step to LXR. LXR has some additional requirements, while ConcurrentStickyImmix should be just as easy to support on the runtime side as ConcurrentImmix
Description
This is the main section of the MEP. Describe the enhancement in detail.
If you have already made prototype implementations for this MEP, add hyperlinks to the relevant PRs,
commits, repositories, etc.
If not, describe how you intend to implement this MEP. You should think about all parts of
mmtk-core that your MEP may interact with.
This section will be long. Feel free to add more subsections.
Impact on Performance
This should be a higher performance GC than ConcurrentImmix
Impact on Software Engineering
unknown
Risks
Long Term Performance Risks
There shouldn't be any. This would be a separate algorithm and imposes no constraints on other algorithms.
Long Term Software Engineering Risks
This would involve introducing additional code.
Impact on API
This shouldn't have any API impacts
Alternatives
It's possible that the language changes needed to support LXR are small enough that this isn't necessary, but at the very least, I think it would be beneficial to have a "normal" high performance concurrent collector as a performance baseline for LXR to benchmark against.
TL;DR
We have
ConcurrentImmixandStickyImmix, but having the combination will be useful for use-cases that have higher allocation load thanConcurrentImmixcan support while still valuing low pause times.Goals
Success Metric
The GC is implimented
Motivation
This will be a useful collector for languages as an intermediate step to LXR. LXR has some additional requirements, while
ConcurrentStickyImmixshould be just as easy to support on the runtime side asConcurrentImmixDescription
This is the main section of the MEP. Describe the enhancement in detail.
If you have already made prototype implementations for this MEP, add hyperlinks to the relevant PRs,
commits, repositories, etc.
If not, describe how you intend to implement this MEP. You should think about all parts of
mmtk-core that your MEP may interact with.
This section will be long. Feel free to add more subsections.
Impact on Performance
This should be a higher performance GC than
ConcurrentImmixImpact on Software Engineering
unknown
Risks
Long Term Performance Risks
There shouldn't be any. This would be a separate algorithm and imposes no constraints on other algorithms.
Long Term Software Engineering Risks
This would involve introducing additional code.
Impact on API
This shouldn't have any API impacts
Alternatives
It's possible that the language changes needed to support LXR are small enough that this isn't necessary, but at the very least, I think it would be beneficial to have a "normal" high performance concurrent collector as a performance baseline for LXR to benchmark against.