On Mon, 12 Oct 2009 20:07:25 +0800 Brian Wang <brian.wang.0...@gmail.com> said:

> On Mon, Oct 12, 2009 at 5:40 PM, Cedric BAIL <cedric.b...@free.fr> wrote:
> > On Mon, Oct 12, 2009 at 7:59 AM, Brian Wang <brian.wang.0...@gmail.com>
> > wrote:
> >> On Mon, Oct 12, 2009 at 11:30 AM, David Seikel <onef...@gmail.com> wrote:
> >>> On Mon, 12 Oct 2009 10:49:03 +0800 Brian Wang
> >>> I do remember a time when we managed to get the startup time of e17
> >>> itself down to a fraction of a second on a typical desktop.  Maybe 5
> >>> seconds tops on the sort of device you mentioned.  I don't know what it
> >>> is these days.
> >>
> >> You mean e17 spends 5 seconds all by itself?  Hm... sounds like a
> >> daunting task ahead of me...
> >
> > It really depend on your hardware and your configuration. During the
> > bootup process of E17, what count is IO operation. Most are due to
> > module, so by carefully choosing them you will reduce the boot time.
> > The second source of IO is library dependencies. If you reduce to the
> > minimum the number of needed library to be loaded, you can win a lot
> > of time. You can currently build all the library from eina to efreet,
> > including evas as a static library only. If you have only one user of
> > the EFL, this could help you.
> 
> Too bad that I will have multiple applications that are based on EFL.
> >
> > But the best things to do, is to try, then profile and improve things.
> > So just let us know what you test give on your hardware :-)
> > --
> > Cedric BAIL
> >
> 
> OK.  I just tried. :-)
> On my device, from power-on to Illume taskbar + empty desktop, it
> currently takes ~18 seconds.  I guess it's not as bad as seen in the
> demo videos (Openmoko and Palm targets).  There's always room for
> improvements.  I will have to steal 15 seconds off that.  I have lots
> to learn as a newbie...
> 
> Any optimization tips are welcome. :-)

1. profile profile profile. find out where your time is being spent. take a
look at bootchart. it's not a bad place to start to see just whats going on at
an overview level.
2. do less. dont do anything you dont NEED to (e17 WILL do things u probably
dont neeed - file load a theme of its own, set a wallpaper and render it, scan
for .desktop files for apps and looks for system app menus like freedesktop.org
xdg standards).
3. how long does the boot take if you JUST boot into an empty x?
4. how much into an empt x + an elementary (or efl app).
(note that efl has a lot of libraries it uses and depends on - each dependency
needs to be found in the fileystsem (ld.so hunts for it) and then symbols need
to be resolved. this literally is string matching every function call used to
an entry in a hash table in the library). the more libs are used - the more
symbols need looking for and thus the more library symbol tables need paging in
from disk
5. do some bencmarks on disk io - where are you booting from? nand? mmc/sd?
nmote that u'll likely find mmc/sd has much better io performance than nand.
also note that the fs you use will matter - eg jffs2 doesnt allow mmap and
needs to to decompress and rebuild logs. ubifs as well ned to rebuild from logs
and decomrpess. cramfs too. all these compressed fs's will reduce raw io
requirements at the expense of cpu - thus u're losing cpu that can be used for
apps starting up. so look deeply at your IO. not to mention time spent mounting
the filesystem when the kernel starts - all of init and shells loaded in.

now.. 1. look into prelink. that can help avoid much of #4. also ldconfig and
ld.so.cache - make sure it's pre-built and populated, not done on each boot.
note that if u dont use e - u'll end up paging in the symbols for libraries
anyway for evas, elementary etc. etc. anyway so either u pay the price for
getting that all cached when e starts or when your efl app starts. one way or
another you will pay that price. 2. just disable features you dont need -
modules u dont need for evas (loaders, savers, engines etc.). dont build ecore
libs u dont need. etc. etc. etc. 3. profile and see just how much time is spent
prior to e coming up. you may find that is quite significant and you're barking
up the wrong tree. so as i said for #1 profile profile profile profile


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to