Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hi there,

On Wed, 2011-09-14 at 10:48 +0100, Caolán McNamara wrote:
Taras Glek's slidedeck about firefox, etc. startup performance
http://people.mozilla.com/~tglek/lpc2011/

        So - Taras and I talk reasonably regularly on some of these topics so I
don't think we're too far behind the plan here ;-)

Some goodies. On the relatively low-hanging fruit side of things...
b) fadvise(WILLNEED) before dlopen ?

        our SUSE / libc does this and it has a real win, so we don't do that,
and as Stephan says the pagein is still run: and then not re-run at
second start (which was really dumb) - so we should have improved there.

Covered by our pagein hackery, so given the apparent reluctance to add 
advise to ld.so, we will have to keep it around for now...

        the real problem is that we have really -a-lot- of libraries to load.
Simply linking them all into one big library not only helps us do good
LTO to save size, but should really speed up I/O by having a single
large contiguous library on disk: with more in it's 'cold' 'hot' etc.
sections. This is what Matus was working towards as GSOC - and when we
have desktop + scripting gbuildized - hopefully we can get svx and sfx2
into tail_build and make that one-big-library a reality.

Though the pagein list was created once, and isn't really reviewed
regularly ?

        I poke it now & then, but you're right - it'd be nicer if we had fewer
libraries and they didn't change name now and then ;-) well worth
reviewing to check that it matches what we load on startup.

as an aside, what's the current preferred/best way for startup
measurement ?

        Catching the very early linking / init is hard - as Taras says we
prolly want to steal some Mozilla code to do that (which can measure
from the fork if not execve. I tended to do the:

export RTL_LOGFILE=/tmp/startup.nopid; rm -f $RTL_LOGFILE; ./soffice
-writer

        and cat the startup.nopid. Of course using:

export OOO_EXIT_POST_STARTUP=1
export OOO_DISABLE_RECOVERY=1

        Would probably allow us to do this headless - using the svp backend on
a server somewhere in a little loop :-) Then again svp has performance
issues all of its own - and much of our problem is not warm start but
cold start time which is ~impossible to measure deterministically
(sadly).

        ATB,

                Michael.

-- 
 michael.meeks@novell.com  <><, Pseudo Engineer, itinerant idiot


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.