isolating builds within a module

Alexander Neundorf neundorf at kde.org
Sun Jan 4 13:48:41 GMT 2009


Hi,

we didn't forget about this...

On Thursday 13 November 2008, Aaron J. Seigo wrote:
> On Wednesday 12 November 2008, Alexander Neundorf wrote:
...
> that gives a sense of the overhead. but that's probably not realistic.
> let's modify a file:
>
>
> aseigo at independence:~/kde4/build/KDE/kdelibs/plasma> time make -j4
> [  3%] Built target threadweaver
> [ 16%] Built target solid
> [ 35%] Built target kdecore
> [ 64%] Built target kdeui
> [ 83%] Built target kio
> [ 87%] Built target knewstuff2
> [ 90%] Built target kfile
> Scanning dependencies of target plasma
> [ 90%] Building CXX object plasma/CMakeFiles/plasma.dir/framesvg.o
> Linking CXX shared library ../lib/libplasma.so
> [100%] Built target plasma
>
> real    0m12.325s
> user    0m10.941s
> sys     0m2.116s

I committed a patch to kdesupport/automoc which makes make a bit faster.
On my (new) machine the time for "make plasma" is is reduced by around 10% 
from 5.1 s to 4.5 s.
You get this (minor) speedup if you update and install kdesupport/automoc/ .
That's still some significant amount of time, but at least we got rid of the 
obvious issues now. 
The next step would be to find out whether that time is spent in make when it 
checks the dates of the files or in cmake -E cmake_depends. If it is spent in 
make, there's not much we can do about it. If it is spent in cmake -E 
cmake_depends, maybe this can be optimized, but this one is already optimized 
a lot. So no big hopes on my side.

...
> if you're wondering why my laptop isn't better than your old system, it's
> because disk IO on laptops still lives in the dark ages.

Please let me know how it does on your system.

> > How about making it possible to build plasma as a separate project ?
>
> that's a possibility ... though more of a workaround than anything.

We may still look into this, but after 4.2.

> > This doesn't exist currently.
> > I'm also not sure the cmake developers would accept a patch, since this
> > would mean some people who didn't remember that they are building without
> > full dependency checking because they disabled it once will end up with
> > broken builds from time to time, and this is something the cmake
> > developers usually want to avoid. They basically always prefer reliably
> > correct to fast.
>
> that's completely understandable. perhaps look at it like a "hidden
> option"; heck, i didn't know about the /fast trick. i doubt many others
> would find out about a -DCMAKE_NO_DEP_CHECKS_BETWEEN_MODULES_AT_BUILD
> switch, or be so scared by it's length, scary soundingness and vagueness
> that only people who knew what it did would use it. ;)

If you really want to have that, file a feature request in the cmake bug 
tracker for it: http://public.kitware.com/Bug

Alex




More information about the kde-core-devel mailing list