On Wed, May 25, 2005 at 05:11:05PM +0200, Matthias Schwarzott wrote:
Now the shoking result for me: If i insert a return in cEIT::cEIT before the GetByChannelID the load goes to 2%. If I add the return in cEIT::cEIT after the GetByChannelID the load stays at 46%.
This routine is O(n) and my channels.conf contains 2750 channels. Cutting down the channels.conf to contain only Pro7 load of section handler thread is 3%.
A patch for this (and other somewhat inefficent code, especially on a Geode with 300MHz ;-) ) was already sent to Klaus. It introduces a few hashlists in parallel to the channels and event structures. With an empty event list, the ARD transponder needs about 40% CPU (but the thread is also niced), after a while the load goes down to about 1% (both numbers on the Geode system).
http://www.vdrportal.de/board/thread.php?postid=310366#post310366
But beware, it's only tested on 1.3.21 and contains some other experimental patches...