Looking for speed increases in "make index" and pkg_version for ports

Hartmut Brandt hartmut.brandt at dlr.de
Mon May 28 15:55:49 UTC 2007


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


More information about the freebsd-ports mailing list