[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnustep-make rules.make rearranged
From: |
Nicola Pero |
Subject: |
gnustep-make rules.make rearranged |
Date: |
Thu, 12 Jul 2001 17:59:55 +0100 (BST) |
Hi - I've just finished committing a couple of radical redesigning of the
core internal gnustep-make rules. This follows a period of intensive
relifting/optimization.
The new design is much more efficient, because it runs 1 make recursive
invocation per target/operation/type instead of 2. Most importantly, we
get this efficiency in *all* circumstances - in particular, if a user puts
inefficient code in GNUmakefile.preamble and/or GNUmakefile.postamble
(most users do), this change shields part of the inefficiency.
The change gives us another 25% performance boost in standard situations
using only system makefiles (which means from March, I've now decreased
the average time taken by gnustep-make to operate by approximately 7 times
as on my laptop where I have all timings recorded, it used to take 8.8
seconds to run `make' inside gnustep-base when all is compiled and now it
takes 1.2 seconds).
This boost by removing a recursive make invocation is actually not as huge
as I would have expected - considering that it is a major redesign - the
gain is comparable with other speed ups which I would have considered
minor - but I suspect it is because system makefiles have already been
carefully tricked and profiled for efficiency so much. The same change
having been done only a week ago would have had a much bigger impact - and
would have decreased the impact of other optimizations which have been
committed in the past days.
Anyway, because this change is structural and concerns *all* makefiles,
including user's ones, and including future system makefiles and future
inefficient code/modifications which might be done to existing system
makefiles, I consider it anyway more important than any local
optimizations in system makefiles.
Today's changes also prepare the road for a final set of radical
optimizations in make clean/distclean which I've long planned. But before
committing them, I'd like to let some 12 hours of pause to make sure
nobody is having major problems with the new gnustep-make code.
If I broke something, please let me know, I'll try to fix it as soon as
possible.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnustep-make rules.make rearranged,
Nicola Pero <=