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