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



On Mon, May 28, 2007 at 11:34:24AM -0500, Stephen Montgomery-Smith wrote:
Jeremy Chadwick wrote:
On Sun, May 27, 2007 at 03:52:16PM -0500, Stephen Montgomery-Smith wrote:
I have been thinking a lot about looking for speed increases for "make
index" and pkg_version and things like that. So for example, in
pkg_version, it calls "make -V PKGNAME" for every installed package. Now
"make -V PKGNAME" should be a speedy operation, but the make has to load
in and analyze bsd.port.mk, a quite complicated file with about 200,000
characters in it, when all it is needing to do is to figure out the
value of the variable PKGNAME.

I have a related question, pertaining to "make all-depends-list" and the
utter atrocity that is the make variable ALL-DEPENDS-LIST. If you don't
know what it is, look for ^ALL-DEPENDS-LIST around line 5175, in
bsd.ports.mk.

I posted this to ports@xxxxxxxxxxx, but now I am realizing that it is
hackers@xxxxxxxxxxx that gets more responses. Anyway, here is a
multithreaded program "all-depends-list" that can get you double the
speed on dual processor systems, and even some small speed gains on
single processor systems. E.g.

all-depends-list /usr/ports/x11/xorg

http://www.math.missouri.edu/~stephen/all-depends-list.c

btw.. stehpen, when are you getting a commit bit? :) I certainly hope that soon enough ;)

roman
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Looking for speed increases in "make index" and pkg_version for ports
    ... So for example, in pkg_version, it calls "make -V PKGNAME" for every installed package. ... Now "make -V PKGNAME" should be a speedy operation, but the make has to load in and analyze bsd.port.mk, a quite complicated file with about 200,000 characters in it, when all it is needing to do is to figure out the value of the variable PKGNAME. ... Anyway, here is a multithreaded program "all-depends-list" that can get you double the speed on dual processor systems, and even some small speed gains on single processor systems. ...
    (freebsd-hackers)
  • Re: Looking for speed increases in "make index" and pkg_version for ports
    ... So for example, in pkg_version, it calls "make -V PKGNAME" for every installed package. ... Now "make -V PKGNAME" should be a speedy operation, but the make has to load in and analyze bsd.port.mk, a quite complicated file with about 200,000 characters in it, when all it is needing to do is to figure out the value of the variable PKGNAME. ... Anyway, here is a multithreaded program "all-depends-list" that can get you double the speed on dual processor systems, and even some small speed gains on single processor systems. ...
    (freebsd-hackers)
  • Re: Looking for speed increases in "make index" and pkg_version for ports
    ... So for example, in pkg_version, it calls "make -V PKGNAME" for every installed package. ... Anyway, here is a multithreaded program "all-depends-list" that can get you double the speed on dual processor systems, and even some small speed gains on single processor systems. ...
    (freebsd-hackers)
  • Re: Looking for speed increases in "make index" and pkg_version for ports
    ... So for example, in pkg_version, it calls "make -V PKGNAME" for every installed package. ... Anyway, here is a multithreaded program "all-depends-list" that can get you double the speed on dual processor systems, and even some small speed gains on single processor systems. ...
    (freebsd-hackers)
  • Looking for speed increases in "make index" and pkg_version for ports
    ... So for example, in pkg_version, it calls "make -V PKGNAME" for every installed package. ... Now "make -V PKGNAME" should be a speedy operation, but the make has to load in and analyze bsd.port.mk, a quite complicated file with about 200,000 characters in it, when all it is needing to do is to figure out the value of the variable PKGNAME. ... So "make" should analyze all the code it is given, and only figure it out if it is needed to do so. ... This would include, for example, figuring out .for and .if directives on a need to know basis as well. ...
    (freebsd-hackers)