-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Cache ControlObject lookups in MidiController::processInputMapping #7057
Comments
Commented by: daschuer We should do a complete refactor the CO hashtables: I have some made some measurements on a Ubuntu 32 bit system and here are the results:
Conclusion:
https://bugs.launchpad.net/mixxx/+bug/1166016 depends on this as well. |
Commented by: daschuer Results from a 64 bit machine: speed up is ~8 here. It is fine to see that atomic-co improves get by 2,5 :-) |
Commented by: daschuer Just found http://woboq.com/blog/qmap_qhash_benchmark.html (please read discussion as well) Conclusion: |
Commented by: rryan I've read it before. It's worth reading every article on woboq.com :) --
|
Commented by: rryan I got rid of the double lookup. Now we just need to cache the CO in the MidiInutMapping.. |
Commented by: kain88-de Did we also refactor the controller code with the controller wizard? |
Commented by: rryan The situation is improved but not perfect. |
Commented by: rryan There are 2 lookups now (1 is unavoidable). The second one is calling CO::getControl() for each input mapping. We could cache the CO in the MIDI input mapping to eliminate this after the first lookup. The problem is that this would assume the ControlObject* for a ConfigKey never changes and that is not necessarily true (for example, skin-generated controls). Given that we have no profiling data showing this inefficiency actually causes any problems -- moving out of 1.12.0 and marking low. |
Reported by: daschuer
Date: 2013-05-27T12:07:31Z
Status: Confirmed
Importance: Low
Launchpad Issue: lp1184581
Tags: controllers, midi
... snip
The text was updated successfully, but these errors were encountered: