From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-06-28 01:32:49
David Abrahams wrote:
> > I think that symple-minded conversion will turn
> > local a = foo bar ;
> > into
> > a = ["foo", "bar"] ;
> > which would not use jam string-caching and might take a lot more
> > memory.
> I'm not in the least convinced that jam string-caching is saving
> memory overall, since:
> a. nothing is ever deallocated
> b. All kinds of nasty strings get computed as intermediate values
> we'll never care about again, and cached -- mostly due to the
> fact that Jam's computational model is so weak.
> c. Python "interns" strings too (but more selectively).
Well, guess talking about performance without benchmarks at hand is hard ;-)
> > I don't know about that... but I suspect rewrite of "toolset.flags" in
> > C++ will be twice as fast as in Python.
> If that rule is actually sucking down a significant number of cycles
> there's something very, very wrong. In v1 it would get called again
> for each target, but in v2 it should only be called when the toolset
> is initially loaded.
Actually, my measurements indicate that the other half takes non-zero time:
the toolset.set-target-variable rule, which is really invoked for each
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk