[vdr] Problems with 20 Timers

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Fri Feb 25 17:48:16 CET 2005


Chris Warren wrote:
>>You could do some profiling with gprof.
>>To that you need to link vdr with -- hmm -- I think gp (read: 
>>add -lgp when linking), then run it inside gprof (gprof vdr ....).
>>
>>--Stefan
>>
> 
> 84.78%     51.92    51.92    70436     0.00     0.00 
> cSchedule::GetEvent(unsigned short, long) const
> 
> That's the culprit...
> 
> I wonder if it would be worth rewriting cSchedule to store events in a
> binary tree based on time. A double-linked list could be included in the
> nodes pointing to allow for scanning through the schedule in the
> conventional way (for(cEvent *p = events.First()...)
> 
> This would cut down the amount of work required to find an event based on
> time (used for timers, finding now/next events and probably numerous other
> places). Another tree of pointers could be built based on event id, to speed
> up searching based on IDs too.
> 
> What do people think, would it be worth me writing a patch?

I don't think we should make things more complicated than necessary.

My VDR has over 30 timers and I don't have any problems with
excessive latency.

Klaus



More information about the vdr mailing list