[Libreoffice] a faster gnumake ? ...
Michael Meeks
michael.meeks at novell.com
Mon Apr 4 07:07:32 PDT 2011
So,
Annoyed by the ~12 second incremental do-nothing build-time of writer,
and anticipating the growth of this as we gnu-make-ise the entire build
[ and I appreciate this is better than before but just up-front ;-]. I
did a bit of profiling.
$ time make
[ build ALL ] top level modules: sw
[ build ALL ] loaded modules: sw
[ build CHK ] loaded modules: sw
make: Nothing to be done for `allandcheck'.
real 0m12.604s
user 0m10.347s
sys 0m2.244s
* Thought one:
Having done an strace - it seems to me that over 2 seconds of that
system time (and I have a fast machine) is consumed simply with stat
syscalls; the attached stat.c does a (typical) stat call 770k times and
it takes me 2 seconds. 97% of our syscalls are 'stats' (770k of them),
and of course they are almost all for the same files.
stats file
822 /data/opt/libreoffice/bootstrap/solver/300/unxlngi6.pro/inc/offuh/com/sun/star/uno/XInterface.hdl
..
836 /data/opt/libreoffice/bootstrap/solver/300/unxlngi6.pro/inc/comphelper/fileformat.h
..
876 /data/opt/libreoffice/bootstrap/solver/300/unxlngi6.pro/inc/vcl/dllapi.h
988 /data/opt/libreoffice/bootstrap/clone/writer/sw/inc/swtypes.hxx
1307 /data/opt/libreoffice/bootstrap/solver/300/unxlngi6.pro/workdir/Dep/LinkTarget/Library/libswli.so.d
1315 /data/opt/libreoffice/bootstrap/solver/300/unxlngi6.pro/workdir/LinkTarget/Library/libswli.so
1428 /data/opt/libreoffice/bootstrap/clone/writer/sw/inc/swdllapi.h
http://users.freedesktop.org/~michael/stat-counts.txt - for the full list
So - the thought is: *why* is gnumake doing this work again and again ?
*surely* we know what output files a make rule touches [ and if we do
not we have problems anyway ], and thus we should know that no files
have changed since last time; can we not assume that and save a ton of
system-calls ?
* Thought two
Amdahl is not kind to people optimising the 20% instead of the 80%, but
perhaps other silliness is tied to this.
Have we done any investigation on what is going on in the guts of make
there ? why is it so paranoid as to stat the same files 1000 times or
so ?
It'd be nice to know if any further thinking / deeper digging has gone
on here, before looking myself.
Thoughts appreciated :-)
Michael.
--
michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stat.c
Type: text/x-csrc
Size: 374 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110404/440d0474/attachment.c>
More information about the LibreOffice
mailing list