-
Notifications
You must be signed in to change notification settings - Fork 857
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
Performance differences between Windows and Linux #921
Comments
One difference between Linux and Windows is that on Linux Now, having said that, it seems you see the difference also between v1.8.7 and v2.1.7 and each of those use the same arena implementation (only the handling of (thread local) segments in
Thanks! |
Hi Daan, I just tried setting MIMALLOC_ARENA_EAGER_COMMIT=0 and ran the test that performs the worst (on Linux). Unfortunately it didn't seem to have any effect. Here is the vsize and rss graph over time for multiple allocators. As you can see, 2.1.7 uses the most vsize by far: When exporting MIMALLOC_ARENA_EAGER_COMMIT=0 and re-running the test with just 2.1.7, the results are pretty much identical: Regarding vsize and rss, the script that I'm using to generate these graphs (https://github.com/jeetsukumaran/Syrupy) simply tracks the output of the rss and vsz fields from
Here are the stats for each run:
Thanks for your assistance! |
Very interesting.. but that does look a bit unexpected -- not sure what is causing the big vsize difference between 1.8.7 and 2.1.7. Is there any way I can reproduce this? (this may be a mimalloc bug) |
Hi Daan, we can definitely set you up with a way to reproduce this. May I contact you by email with instructions? I can get your email address from the git logs. |
Yes, I would like to investigate this -- thanks! (either daan at |
I've been running our software through our benchmark suite with both mimalloc 1.8.7 and mimalloc 2.1.7 and have noticed some differences in its behaviour across OSes. On Windows, 2.1.7 pretty much always comes out on top in speed, vsize and rss. However on Linux, it's a bit more complicated. In some tests, I've seen 2.1.7 consume up to 75% more virtual memory than 1.8.7. rss is generally the same between both versions.
I'm wondering if this has been seen before, and if there's anything we can do about it. Ideally we'd like to use the same allocator on both OSes as its less to maintain. We need to be cautious about our virtual memory size as some users monitor the vsize as a way to detect swapping, and will kill the process if vsize exceeds the amount of physical memory.
The text was updated successfully, but these errors were encountered: