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