[Mplayer-cvslog] CVS: main/DOCS/tech TODO,1.9,1.10
Nick Kurshev
nickols_k at mail.ru
Wed Dec 12 17:02:19 CET 2001
Hello, Michael!
On Mon, 10 Dec 2001 22:50:02 +0100 you wrote:
> Hi
>
> On Monday 10 December 2001 18:56, Nick Kurshev wrote:
> [...]
> > > try it yourself (attached benchmark compiled with -O4)
> > > the output for my p3 is
> > > 51052k cycles needed for 10000000 calls through if/else
> > > 140573k cycles needed for 10000000 calls through function pointers
> >
> > And for witch memcpy?
> > fast_memcpy_MMX2 or fast_memcpy_MMX?
> none its just a comparision between if/else vs function pointers
>
> > Anyway - it's only in theoretical test but in practic processor won't
> > to save conditional branch-table for this branch and probably will
> > predict false branch.
> it will allways use the same memcpy routine so it should be near 100%
> predictable unless u xchange the cpu while its running ;)
>
> > I know only that manuals always suggested to replace conditional jumps
> > with direct code ;)
> yes but that isnt possible here
> they allso suggest to avoid function pointers
>
Did you read K7 manual?
What about:
JMP near mreg16/32 (indirect) DirectPath
JMP near mem16/32 (indirect) DirectPath
> >
> > If you will accept my idea - I have solutution for self-modification code
> > without changning logic of mplayer of each your TEMPLATE set.
> selfmodifying code is possible here yes but u save perhaps 2 cpu cycles while
> a single memory access needs 50 or so, i doubt that it is worth it ... and it
> would only affect the runtime cpu detection enabled binaries, but if u want
> to implement it than do it ... iam allways happy if someone can make the code
> faster :)
> btw some comilers might inline the if&else and memcpy function into the
> calling function ... using selfmodifieing code will cause a speedloss here
> because it cant be inlined anymore
>
My tests shows me that on Duron:
direct call takes 4 clocks
indirect call takes 5 clocks
(these clocks include measuring of loop)
So there is only 20% of difference that is too few against memcpy process.
> [...]
>
> Michael
> _______________________________________________
> Mplayer-cvslog mailing list
> Mplayer-cvslog at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog
>
Best regards! Nick
More information about the MPlayer-cvslog
mailing list