-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Poor Memory Manager performance #3865
Comments
Though I don't have a precise benchmark result, |
I have a benchmark. Using the code in #3882 I exported the same file from the GUI using the default export settings, first with
See the slowdown on each successive run? Then a version using malloc & free instead:
I was so sure that my malloc/free hacking had left out something important that I listened to the exported wav file but no, it was fine... using MemoryManager the export took around 50% longer and got slower all the time. Kill it. Kill it now. Nuke it from orbit. |
* Replace MemoryManager implementation with rpmalloc Fixes #3865 * Travis: Specify OSX image for Qt5 build
* Replace MemoryManager implementation with rpmalloc Fixes LMMS#3865 * Travis: Specify OSX image for Qt5 build
* Replace MemoryManager implementation with rpmalloc Fixes LMMS#3865 * Travis: Specify OSX image for Qt5 build
I appreciate that the Compiling Wiki docs were updated but FWIW IMO this was a pretty major change to land on the "stable" branch without at least including a note in the commit message that the addition was via a submodule so things wouldn't automatically continue to work. Or maybe I just have exceptionally bad luck to hit this change, b621c7e and 0dbdafc all within a short time affecting both |
* Replace MemoryManager implementation with rpmalloc Fixes LMMS#3865 * Travis: Specify OSX image for Qt5 build
MemoryManager
causes a performance regression and should be replaced by a faster algorithm or, if we fail to find/implement one, justmalloc
andfree
, which still provides better performance than the current implementation.Here are a couple of existing lock-free allocators I found:
Streamflow (GitHub project).Edit: Implementation is POSIX-only.In case anyone's interested in the technical details, there's a paper describing the algorithm, including benchmarks: http://people.cs.vt.edu/~scschnei/papers/ismm06.pdf
Related issues: #2029, #3312, #3767
The text was updated successfully, but these errors were encountered: