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

Reply via email to