-
-
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
Use thread local memory pools when allocating jobs #7338
base: master
Are you sure you want to change the base?
Conversation
It looks like I don't see what good removing it would do if it's not being replaced with something better. |
See #1088 for history of it being added. There was some for and against it. |
Ideally, we would pre allocate all the memory needed before processing the audio. Perhaps To clarify, |
With the recent macOS CI update, we should now be able to use everything from C++17's EDIT: Unfortunately, it looks like the implementation uses If there was a way to guarantee accesses came from a single thread, we could use |
One way is to use a My idea is to still use a I'll try to do some work towards this soon.
|
Hey @messmerd, I went ahead and made changes that make allocations involving all types of |
NotePlayHandleManager
NotePlayHandleManager
and use std::pmr::unsynchronized_pool_resource
for all ThreadableJob
's
NotePlayHandleManager
and use std::pmr::unsynchronized_pool_resource
for all ThreadableJob
's
Nevermind, the Greppi demo loading time is about the same now, both fast really before and after the changes. Maybe it was just a fluke on my part. |
Removes
NotePlayHandleManager
and uses thread local memory pools for allThreadableJob
's. The memory pool in question is actuallystd::pmr::unsynchronized_pool_resource
. They were made thread local to avoid synchronization.