Re: Performance issues with Cons

Gary Oberbrunner <[email protected]> Fri, 04 Oct 2002 10:39:30 -0400
Newsgroups gmane.comp.gnu.cons.general
Message-ID <[email protected]>
> Has anyone done any work on improving this?  I haven't spent much time looking
> at the code inside cons, so I don't know if the code itself could be made more
> effiicient, but it seems like it should be possible to cache the include
> dependencies somewhere, and only rebuild them when a source file changes...

But you still have to examine each include file to see if it's changed, 
all the way down the tree.  You can avoid checksumming it if the date 
hasn't changed, but even that can be problematic in an NFS environment.

Cons can avoid re-checksumming the file if the timestamp matches; see 
"Using build signatures to decide when to rebuild files" in the cons 
docs.  Try using
    SourceSignature '*' => 'stored-content';
and see if that helps.  (Requires a recent cons version.) From the cons 
docs:

This specifies that Cons will use pre-computed content signatures
from F<.consign> files, when available, rather than re-calculating a
signature from the the source file's contents each time Cons is run.  In
practice, this is safe for most build situations, and only a problem
when source files are changed automatically (by scripts, for example).
The Cons default, however, errs on the side of guaranteeing a correct
build in all situations.

You are using one of the native-code MD5 implementations, right?  The 
perl-based one is dog-slow.

-- 
. . . . . . . . . . . . . . . . . . . . . . . . .
Gary Oberbrunner                [email protected]
GenArts, Inc.                   Tel: 617-492-2888
8 Clinton Street                Fax: 617-492-2852
Cambridge, MA 02139 USA         http://web.genarts.com




_______________________________________________
[email protected]
http://mail.gnu.org/mailman/listinfo/cons-discuss
Cons URL: http://www.dsmit.com/cons/