On Wed, May 27, 2009 at 11:39:26PM +0800, Wei Cao wrote:
> hi, all, I tested u2_has.swf on my windows laptop, hope it's not so late . I
> just tried the first 400 frames with the command
>
> ./sdl-gnash.exe --max-advances 400 u2_has.swf
>
> The gnash-0.8.5 with the patch last time I sent uses 61.770s CPU time,
> 51.006s is consumed in draw_shape_character , there are total 84384 calls
> to AGG.
>
> The optimized version uses 44.744s CPU time, 36.268s in
> draw_shape_character, there are only 32123 calls to AGG now, which means,
> 5/8 calls to AGG and 25% CPU time is saved by cache.
Visible effects on FPS (max/min/avg) ?
> One question, I found there are three lt-sdl-gnash processes executing at
> the same time when I play a single flash file on a arm like system, one
> takes about 70% CPU and 25% the second, and 2% the third, when I kill one of
> the three processes, the other quit too. I use dynamic linking.
>
> The question is, why there are three processes when I execut the libtool
> generated script sdl-gnash only once, where and when they are forked in the
> code?
It could be your process table lister considers each thread as a
separate process. One thread is the SDL sound consumer, one is the parser
and one is the main one. The parser is likely the 2% one, the sound the 25%
and the rest is main (VM + renderer).
aha, you are right, it's a SDL thread in sound handler occupy 25% CPU time all the time, after I commented out init_sound() in gui/Player.cpp, sdl-gnash runs significantly than before.