Skip to content
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

Immix GC #732

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Immix GC #732

wants to merge 2 commits into from

Conversation

carlhoerberg
Copy link
Member

@carlhoerberg carlhoerberg commented Jul 17, 2024

WHAT is this pull request doing?

Replaces the Boehm GC with Immix GC by @ysbaddaden

Build with -Dgc_none to activate

HOW can this pull request be tested?

rm bin/lavinmq && make bin/lavinmq

run benchmarks such as bin/lavinmqperf queue-churn

Initial benchmarks shows about 67% faster queue churn rate.

But also that is somewhat buggy, crashes on the lavinmqperf bind-churn benchmark.

Build with -Dgc_none to activate
@ysbaddaden
Copy link

Oh my 😳

67% faster queue churn rate

That's surprising. I remember it was a little faster than Boehm overall, but collections are much slower (not parallel, yet).

Maybe having objects allocated at the same time usually being allocated next to each others (immix) rather than objects of the same size being allocated together (boehm) is helping with data locality?

that is somewhat buggy

Damn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants