On 10/26/2012 05:52 AM, D. Michael McIntyre wrote: > On 10/25/2012 07:58 AM, Ted Felix wrote: >> updateRefreshStatuses() is getting called about 388 times per second. > > Holy crap, Batman!
Indeed. We're looking at almost 900 calls per second to Segment notification related functions while recording this piece. The RefreshStatus stuff appears to be an attempt to mitigate this CPU usage problem. However, it is not complete. The Segment::notify*() functions are still there and still in use. I don't think SegmentRefresh is the best solution, however, as it might lead to a system that constantly sucks some sort of idle amount of CPU. Pulling the notification calls out of the mutators (and using the notification mechanisms instead of RefreshStatus) would lead to a system that uses 0 CPU when idling. > RosegardenWidget is just QWidget with an update() method that is aware of the transport rolling status, and just returns 90% of the time That is interesting. I'll keep it in mind while walking through all the observers. It might be helpful as a stopgap measure. CompositionView stands out in the profiler output as the class that needs attention first. But it derives from QAbstractScollArea. So I guess it can't derive from RosegardenWidget instead. We would need a RosegardenAbstractScrollArea. Probably not worth the effort as the improvement is not guaranteed, and it's just a band-aid on a much bigger problem. Could be an interesting experiment, however. Ted. ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct _______________________________________________ Rosegarden-devel mailing list [email protected] - use the link below to unsubscribe https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
