On Jan 7, 2008 5:13 AM, Gustavo Sverzut Barbieri <[EMAIL PROTECTED]> wrote:
> On Jan 4, 2008 8:43 PM, Nathan Ingersoll <[EMAIL PROTECTED]> wrote:
> > On Jan 4, 2008 4:02 PM, Cedric BAIL <[EMAIL PROTECTED]> wrote:
> > >   I am looking for a way to improve edje file load time. Right now a
> > > large amount of time is logically lost in _eet_data_descriptor_decode.
> > > So looking at its profile, most of the time is lost in manipulating
> > > string.
> >
> > Before getting into the details of your change ideas, could you
> > explain the use case that you are profiling and the motivation behind
> > it? For instance, are you seeing a slow load time when initially
> > starting an application, or is this a case where various edje files
> > are decoded over time, or accessing multiple data fields, etc?

Sorry Nathan, I did reply directly to you and not to the mailing, it
was a mistake.

So I am profiling the time needed by an edje object to become
visible/active to the end user after the edje_object_file_set. I was
only testing with some quite complex edje file with many swallowed
object. I just did test with multiple edje file at the same time and
the profile result look the same.

> Nathan points are valid, of course, but I'm really interested in this
> kind of stuff, because it's mostly "for free" if you can mmap it, also
> it will help on high memory pressure situations, since these regions
> would be file-based and can be evicted and reloaded when app is used
> again (not a situation I'd like, but would help on embedded systems a
> bit).

Yes, it should help and reduce memory presure on embedded systems.

> Cedric, something else related is trying to group these strings near,
> so when they're loaded they'd be on the same memory page, this would
> help disk seeks and the issue I pointed before. Any knowledge of this
> area?

Right now, string are repeated a lot in the eet file and they are at
many different place. If you want to see this, just change the call to
eet_data_write inside edje_cc_out.c to not compress data.

So packing them together in one section and reducing them to only one
occurence inside the eet file could be another improvement. But the
way I see it (adding a new kind of section at the end of the eet file
and refering to it) will break backward compatibility (eet file using
this will not be loadable with previous libeet). It could solve some
of the issue you are pointing.

A side effect of this solution, we will not need to tell the
application anything about the char* we are giving to it. Because all
of them will be in a uncompressed section available as long as the eet
file is referenced somewhere. This solution break eet file
representation but not eet application.

-- 
Cedric BAIL

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to