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