[Dev] Tizen 3.0 : Optimizing applications launch time

Stéphane Desneux stephane.desneux at eurogiciel.fr
Fri Oct 18 18:16:40 GMT 2013


Hello,

I'm currently investigating with Dominique Le Foll on some ways to 
improve the application launch time (WRT, OSP or core apps).

Before thinking of checking preloaders and other mechanisms, I just sat 
down and looked at the actual shared libs we can find in tizen/common 
(x86_64) and IVI (i586).

First surprise: binaries and libs are *not* stripped.

I don't know the reason why we build and distribute unstripped binaries, 
except easier debugging (but we have debug packages in the repos...). 
Does anyone know ?

A quick test on IVI shows that stripping libwebkit2 reduces its size by 
20% (38MB => 30MB).

So, I decided to strip everything in /usr/bin and /usr/lib64 on the 
tizen/common image:
- /usr/bin:   before 67MB   after 58MB  => gain=13%
- /usr/lib64: before 1.2GB  after 407MB => * gain=75% * !!!!

=> the impact on the size is huge. For embedded systems with slow flash 
drives, it'd be even more noticeable.

And now, some tests. First numbers on my new "stripped" image , second 
numbers on the original one (not stripped):
- boot time: 15s vs. 16s (gain=6%)
- first WRT app launch (Annex): 3.5s vs 9.5s (* gain=63% *)
- WRT app launch (after first launch): <1s in both cases with any app 
(this is normal behaviour: we have the WRT launchpad)

=> the gain on app launch is also impressive (this gain is not far from 
the gain on the libs weight).

----

Conclusion: stripping the binaries has a great impact:
- smaller image size: faster to load from storage, faster to download 
from tizen.org (and more bandwidth for everyone ;-))
- faster application launch, at least for WRT

Next week, I'll check more precisely why we gain 75% on the binary size: 
perhaps a few libs are responsible for this... Or is this globally 
distributed over all the binaries ?

Best regards,
-- 
Stéphane Desneux
Intel OTC - Vannes/FR



More information about the Dev mailing list