Date: Tue, 22 May 2007 09:26:58 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: Jeremy Lea <reg@FreeBSD.ORG> Cc: ports@FreeBSD.ORG Subject: Re: Speedup for make clean-depends (and thus make clean) Message-ID: <20070522092658.mg9k99jkg8oo4o0c@webmail.leidinger.net> In-Reply-To: <20070521222816.GA93550@flint.openpave.org> References: <20070520090149.190a919c@deskjail> <20070521021313.GA63269@flint.openpave.org> <20070521102026.d5y5ckqvk8cwcsg0@webmail.leidinger.net> <20070521222816.GA93550@flint.openpave.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Jeremy Lea <reg@FreeBSD.ORG> (from Mon, 21 May 2007 15:28:16 -0700): > Hi, > > On Mon, May 21, 2007 at 10:20:26AM +0200, Alexander Leidinger wrote: >> I tried to do the WRKDIR and _DEPEND_DIRS part in one go myself, but >> it was slower than the patch I did post (in the case where all dirs >> are already clean). But I did use another implementation, I did a "set >> -- $$children" and used shift instead of state variables. Did you >> compare the speed of your patch with the speed of my patch (in a >> directory with a lot of dependencies like e.g. gnome2)? > > In /usr/ports/x11/gnome2 (on an up to date port's tree): > > make clean-depends: > real 1030.98=09user 916.21=09sys 102.80 > make all-depends-list: > real 348.25=09user 310.27=09sys 32.01 > make clean-depends-list: (Your patch) > real 685.53=09user 611.60=09sys 65.93 > make clean-depends-full: > real 346.18=09user 310.53=09sys 31.94 > make clean-depends-quick: > real 124.72=09user 119.88=09sys 3.73 > > In other words, it takes my poor old machine 17 minutes to do a 'make > clean' of gnome2 with no existing work directories (i.e. to do nothing). > Of that 5.8 minutes is spent building the list of directories to clean. > Your patch increases that to 11.4 minutes (meaning that 'make clean' is > 33% faster - which matches the numbers you posted). With my patch it > takes the same time to build the list (meaning 'make clean' is 66% > faster). > > The cheating quick version takes one tenth of the time, because gnome2 > directly depends on 57 ports, out of 508 total (on my machine). Yay! Please send-pr and assign to portmgr. > From bsd.port.mk: > # clean=09=09- Remove ${WRKDIR} and other temporary files used for buildin= g. > # clean-depends=09- Do a "make clean" for all dependencies. > > This is the only documentation of the targets that I found. Using the > limited-clean target would get users exactly the this behaviour - it > would clean up the port and all of the other ports it depended on that > were built to statisfy the building of this port. I think this should speed up the ports build on the cluster (if they =20 don't already cheat and have a dedicated FS which is newfs'ed each =20 time) a little bit (together with the other patches we have, it is a =20 very nice improvement overall). > I've added some more to the attched patch, including the idea of a > pre-clean, which would be useful for portupgrade, since it could define > DEPENDS_PRECLEAN and not have to worry about cleaning before building... Yes, sounds nice. Bye, Alexander. --=20 Leela: Okay, this has gotta stop. I'm going to remind Fry of his humanity the way only a woman can. Professor: You're going to do his laundry? http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID =3D B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID =3D 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070522092658.mg9k99jkg8oo4o0c>