On Thu, Sep 11, 2008 at 5:56 AM, Anders Petersson <[EMAIL PROTECTED]> wrote:
> Hi,
> I have continued to investigate the slow performance of my edje project.
>
> Of course you are right, there are many Evas_Objects and smart objects.
> I updated to the 'calculate' patch that Gustavo committed. It works
> wonders! Thanks, Gustavo. I'll apply one of Gustavos fixes if they are
> deemed ok:
> http://www.mail-archive.com/enlightenment-devel@lists.sourceforge.net/msg18947.html
> Also, now I don't need to do edje_freeze()/edje_thaw() when using
> 'calculate'.

Excellent. As for edje_freeze()/edje_thaw(), avoiding these kind of
guards are the reason I created this patch. I was doing some layout
objects here and "Oh, I don't want to do this AGAIN", then created
this Evas callback.


> I tried to optimize emitting "program,start" and "program,stop" to
> supply the Edje_Program object directly instead of requiring extra
> edje_match_programs_exec calls. Then I discovered that these signals are
> just emitted in case anyone would be interested. I can't see that we
> need this possibility so I removed the emitting of "program,start" and
> "program,stop" altogether. This alone doubles the speed.

AFAIK, these signals could be used by applications and Edje to catch
the program start or end and do some action in response. Frankly I
just use this callback to debug, connecting to a "*" "*" or
"program,*" "*" signals and check if stuff is running.
    I know you can emulate the original "program,*" intent by chaining
programs, like "pre-ACTION" { signal: SIGNAL_EMIT "program,start"
"ACTION"; after "ACTION"...}. So maybe we could remove this signals
altogether and those who need it could add in this form, but this
requires "grep 'program,'" in the current SVN to see how many use
cases exist.

Also related, we could be more selective on which mouse events objects
emit. Right now we emit all of them, which sucks. Most of times you
just want up, down or even just clicked, not mouse move, in or out
events. Probably we could do that without break .edc files, just have
the boolean "mouse_events" to be an integer, 2 = no move, 3 = no move
+ in/out, 4= no move + in/out + up/down, just click, ...


> Enabling EDJE_PROGRAM_CACHE still gives some advantage it seems,
> although not that dramatic when I avoid all "program,start" signals.
>
> For the moment I think this is all I need. In total I've got 5-10 times
> faster execution. If further needs arise, I have gained some insight in
> what to look at.

wow, sometimes I'm amazed of efl performance. Man, you're totally off
the intended use case and you still have performance... or did you
change something, reducing the number of parts in Edje?

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [EMAIL PROTECTED]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to