Date: Mon, 28 May 2007 17:55:39 +0200 From: Hartmut Brandt <hartmut.brandt@dlr.de> To: Stephen Montgomery-Smith <stephen@math.missouri.edu> Cc: ports@freebsd.org, hackers@freebsd.org Subject: Re: Looking for speed increases in "make index" and pkg_version for ports Message-ID: <465AFB7B.40105@dlr.de> In-Reply-To: <465AF2CC.9020506@math.missouri.edu> References: <4659EF80.70100@math.missouri.edu> <465AB421.10802@dlr.de> <465AF2CC.9020506@math.missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Stephen Montgomery-Smith wrote: > Hartmut Brandt wrote: > >> Having done a great deal of rewriting of make some two years ago I can >> tell you that even a small change to make is a tough job testing-wise: >> run all the combinations of !-j and -j <N> on all architectures and run >> the change through the port-building cluster. That's a warning to start >> with. >> >> Second I would start with careful profiling to find out where the >> problem actually is. You might be surprised. As an example: several >> times the idea came up to use a hash structure instead of linear lists >> for make variables. I got a patch for this and - it makes absolutely no >> difference performance-wise (well, there was some indication that >> performance gets worse, but that was around or below noise level). With >> careful I mean to find out who takes the time: > > Yes, I must admit that I thought that a hash structure for the variables > would greatly increase the speed of make. I rewrote it using Berkeley > databases, and like you said - absolutely no difference!! I even tried > btrees. > My guess at that time was that because there are actually many variable tables (one per target and the global one) and only a small number of variables in most of the tables the initialisation overhead outweights what you win through the hashing. As for the profiling - I did some profiling on buildworld then. From the several hours a buildworld took only one or two minutes were used by all the makes. At this point I stopped optimizing make :-) (I don't remember the exact numbers - that was two or three years ago). harti
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?465AFB7B.40105>