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

Q: How does the performance compare with mimalloc? #273

Open
sirinath opened this issue Jan 24, 2021 · 8 comments
Open

Q: How does the performance compare with mimalloc? #273

sirinath opened this issue Jan 24, 2021 · 8 comments

Comments

@sirinath
Copy link

  1. How does the performance compare with mimalloc?
  2. Can the features developed here eventually added to mimalloc?
@mjp41
Copy link
Member

mjp41 commented Jan 24, 2021

  1. Performance is pretty similar. There are examples where snmalloc out performs mimalloc and there are examples where mimalloc out performs snmalloc. snmalloc tends to do better in very asymmetric producer consumer allocation patterns, but again it is very much down to the benchmark. @sirinath do you have a particular use case in mind?

  2. If we find things work well, I am sure @daanx would be open to adding them to mimalloc. There are some core difference in how mimalloc and snmalloc work, but the designs are very close in most regards, so porting ideas should work well. We pulled several aspects of how mimalloc works into snmalloc after mimalloc was published. Long term, I think both @daanx and I would like to combine into a single allocator, but haven't worked out how to do that.

@sirinath do you have a feature in mind?

@enihcam
Copy link

enihcam commented Sep 15, 2023

  1. Performance is pretty similar. There are examples where snmalloc out performs mimalloc and there are examples where mimalloc out performs snmalloc. snmalloc tends to do better in very asymmetric producer consumer allocation patterns, but again it is very much down to the benchmark. @sirinath do you have a particular use case in mind?
  2. If we find things work well, I am sure @daanx would be open to adding them to mimalloc. There are some core difference in how mimalloc and snmalloc work, but the designs are very close in most regards, so porting ideas should work well. We pulled several aspects of how mimalloc works into snmalloc after mimalloc was published. Long term, I think both @daanx and I would like to combine into a single allocator, but haven't worked out how to do that.

@sirinath do you have a feature in mind?

It seems like mimalloc has been unmaintained since two months ago. I don't know if there's any exclusive features of it that can be ported to snmalloc as well.

@mjp41
Copy link
Member

mjp41 commented Sep 15, 2023

I don't believe mimalloc is unmaintained. @daanx is out of office at the moment so I can't double check with him. But generally he does a big push on mimalloc support every few months.

@SchrodingerZhu
Copy link
Contributor

mimalloc is the default allocator used in Koka. So it is being maintained, I suppose.

@osevan
Copy link

osevan commented Oct 12, 2023

Could you plant pareto principles from scalloc?

In my benchmarks, it even outperforms jemalloc on skylake.

https://github.com/cksystemsgroup/scalloc

@mjp41
Copy link
Member

mjp41 commented Oct 12, 2023

@osevan it is a while since I read the scalloc paper. If you could say a bit more about your suggestion that would be helpful.

Also, could you share the benchmarks? Or even add them to mimalloc-bench? Seeing benchmarks can often help understand the weaknesses of certain aspects of the design.

@osevan
Copy link

osevan commented Oct 12, 2023

My benchmarks are old and i did that after scalloc appear in world.

And i cant find my Benchmarks :-(

Btw i was in my tests fastest one on skylake with lowest latancy.

I tested several benches with jemalloc tcmalloc rpmalloc and lockless lalloc and in case where lowest latency possible was scalloc thread creation bench , the best.

I think you can try to fix compile errors with latest gcc and clang and we can test this again.

@osevan
Copy link

osevan commented Oct 12, 2023

Is this one daanx/mimalloc-bench#90 fixed in mimalloc-bench?

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

No branches or pull requests

5 participants