Hi,
the attached patches speed up starting and stopping VDR on slow machines with huge channels.conf files, by avoiding some n / 2 * (n + 1) loops.
Please test them and report bugs here.
Bye.
Hi,
some more patches:
HASHSIZE should be a prime: 512 looks like a typo of 521.
oprofile and gprof showed the possibilty to speed up some OSD drawing operations. Please find attached a patch for DrawRectangle and DrawBitmap. BTW: text2skin will not benefit from the DrawBitmap changes as it uses it's own copy of DrawBitmap.
oprofile also showed strreplace among the top 10 when profiling a 120 second VDR session. Please find attached a "faster" solution.
Bye.
Reinhard Nissl rnissl@gmx.de wrote:
oprofile also showed strreplace among the top 10 when profiling a 120 second VDR session. Please find attached a "faster" solution.
i applied all your patches and indeed, vdr feels more responsive now on the geode vdr client. no stabillity issues yet.
well done!
best regards ... clemens
On Thu, Dec 27, 2007 at 12:42:30AM +0100, Reinhard Nissl wrote:
Hi,
some more patches:
HASHSIZE should be a prime: 512 looks like a typo of 521.
That is related to my original hash patch a few years ago. It is not a typo! If you don't have a special distribution with clusters it doesn't matter if the hash size is prime or not. In fact the modulo operation is slower than the AND on old CPUs...
oprofile and gprof showed the possibilty to speed up some OSD drawing operations. Please find attached a patch for DrawRectangle and DrawBitmap. BTW: text2skin will not benefit from the DrawBitmap changes as it uses it's own copy of DrawBitmap.
Seems that work needs to be done always twice :( I made similar improvements for the Reel-vdr almost two years ago (replacing SetIndex by a faster version without dirty-update). AFAIK RMM also submitted the patches. At that time nobody was interested in them ("vdr is fast enough" or the like).
Hi,
the attached crc32 seems to be 2 % faster than the original.
Bye.
Hi,
the first patch optimizes cNitFilter::Process() by looping only over the relevant channels. It introduces a further hash in cChannels and implements an iterator for hiding this implementation detail.
The channel_display patch avoids to call DrawText() when the "date" text has not changed in the channel display. As DrawText() calls DrawRectangle() when a non transparent background color was specified, drawing the same text will always yield a dirty area although there is no difference when looking at the bitmap before and after the call to DrawText().
And finally, the formerly released osd_draw patch has been updated a little bit. DrawBitmap() and DrawRectangle() use now memcpy() when possible.
Bye.
Hi,
Reinhard Nissl schrieb:
the first patch optimizes cNitFilter::Process() by looping only over the relevant channels. It introduces a further hash in cChannels and implements an iterator for hiding this implementation detail.
Sorry, but a line from the DVB-S2 patch slipped through. Please find attached an updated version.
Bye.
Il giorno dom, 23/12/2007 alle 22.46 +0100, Reinhard Nissl ha scritto:
Hi,
the attached patches speed up starting and stopping VDR on slow machines with huge channels.conf files, by avoiding some n / 2 * (n + 1) loops.
Please test them and report bugs here.
Hi Reinhard,
Your patches seems to be good!
Since often vdr run on not so recent pcs, I think optimization is good!
I haven't tested them yet, but I hope will be merged into the mainline!
Regards, Eddi
Reinhard Nissl rnissl@gmx.de wrote:
the attached patches speed up starting and stopping VDR on slow machines with huge channels.conf files, by avoiding some n / 2 * (n +
- loops.
Please test them and report bugs here.
i have your first patch (with the hashzise bug) running for a week now without problems. i cannot provide numbers but i think it halps on one of my vdr clients a 300mhz geode.
thx & best regards ... clemens