On Sun, 02 Dec 2012 08:12:45 +0000 Matthew Seaman <m.sea...@infracaninophile.co.uk> wrote:
> On 02/12/2012 06:50, Kimmo Paasiala wrote: > > It takes about half an hour on my dog slow intel atom D510. Is there > > anything in the works to speed up 'make index'? I understand that > > the slowest part is the evaluation of dependencies, is that right? > > The slow part is parsing around 25,000 Makefiles ( + reading about > 25000 pkg-descr files, but that's relatively quick) in order to > extract the values of certain variables. make(1) typically takes > about 200ms per Makefile, which is ages. Speedups are possible: > parallelization (which is what make index does) or cacheing the > results and only rerunning make when changes could affect the output > (which is what FreeBSD::Portindex does) > > Once you've done all that Makefile processing, chasing all the > dependencies is fairly quick. > > A great deal of time and effort has been spent on making 'make index' > run as fast as possible. All the easy optimizations and many of the > not-so-easy ones have already been applied. Further improvement would > probably require a radical 'throw it away and write something better > from scratch' approach, which I'm not at all sure is worth it since > for the most part, the ports works just fine without any sort of > index at all, and it is the various websites that essentially show > nicely formatted data from the INDEX that would really benefit. BTW, I'm seeing this on my machines: Checking timestamps on options makefiles: cache-update: WARNING unknown options file "/var/db/ports/rsync/options" -- ignored cache-update: WARNING unknown options file "/var/db/ports/subversion/options" -- ignored cache-update: WARNING unknown options file "/var/db/ports/apr/options" -- ignored cache-update: WARNING unknown options file "/var/db/ports/python27/options" -- ignored cache-update: WARNING unknown options file "/var/db/ports/m4/options" -- ignored cache-update: WARNING unknown options file "/var/db/ports/help2man/options" -- ignored cache-update:1: Checking for category changes at www .... # cat /var/db/ports/rsync/options # This file is auto-generated by 'make config'. # Options for rsync-3.0.9_2 _OPTIONS_READ=rsync-3.0.9_2 _FILE_COMPLETE_OPTIONS_LIST=ACL ATIMES FLAGS ICONV POPT_PORT RENAMED SSH TIMELIMIT OPTIONS_FILE_UNSET+=ACL OPTIONS_FILE_UNSET+=ATIMES OPTIONS_FILE_UNSET+=FLAGS OPTIONS_FILE_UNSET+=ICONV OPTIONS_FILE_UNSET+=POPT_PORT OPTIONS_FILE_SET+=RENAMED OPTIONS_FILE_SET+=SSH OPTIONS_FILE_UNSET+=TIMELIMIT Any hints? Is it the fact that it's in the OPTIONSng format? Thanks, -- IOnut - Un^d^dregistered ;) FreeBSD "user" "Intellectual Property" is nowhere near as valuable as "Intellect" FreeBSD committer -> ite...@freebsd.org, PGP Key ID F0808380 _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"