gnustep-dev
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]