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:
(The absolute values are only for reference, they are rather un-precise and varies from run to run, but the tendency and magnitude is allays the same.)
ControlObject::get(ConfigKey()); // 2065 ns on a hashtable filled with all controls
getControlObjectThread(ConfigKey())->get(); // 1930ns on a private hashtable filled with 6 controls
pCOT->get(); // 695ns and will be much faster on a 64 bit system because double is atomic there
Conclusion:
* Size of QHash dos not put significant time on the get call.
* Saving a local pCOT speeds up get() by 3 @32bit
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:
(The absolute values are only for reference, they are rather un-precise and varies from run to run, but the tendency and magnitude is allays the same.)
ControlObject: :get(ConfigKey( )); // 2065 ns on a hashtable filled with all controls tThread( ConfigKey( ))->get( ); // 1930ns on a private hashtable filled with 6 controls
getControlObjec
pCOT->get(); // 695ns and will be much faster on a 64 bit system because double is atomic there
Conclusion:
* Size of QHash dos not put significant time on the get call.
* Saving a local pCOT speeds up get() by 3 @32bit
https:/ /bugs.launchpad .net/mixxx/ +bug/1166016 depends on this as well.