-
Notifications
You must be signed in to change notification settings - Fork 25
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
Performances issues #51
Comments
It's not too surprising. There are certain workloads where isoalloc creates a ton of zones and then spends a lot of time in a critical section holding a lock while iterating each zone to find which one owns a specific chunk. There may even be a configuration of default zones or cache sizes that solves it. |
The sh8bench.c code seems to leak a lot of memory. Still investigating. |
Output from the isoalloc heap profiler:
|
I've got the runtime of the
|
Latest commit adds support for a lookup table which significantly improves performance. However it doesn't solve the core design issue around lock contention as you add threads. The sh8bench mark performs better with 4 threads but still not great with 8. I have ideas for solving this but Im going to continue incrementally adding performance improvements whenever I can. |
Performance is going to be a long standing issue we iteratively make improvements on. Given recent changes I am going to close this issue but happy to work on specific performance related issues that get filed in the future! |
isoalloc was disabled by default in mimalloc-bench, since "it takes too long on the shbench tests".
It would be nice to investigate why it's so slow, and to fix this behaviour.
The text was updated successfully, but these errors were encountered: