On Mon, Sep 26, 2016 at 2:34 PM, Rene Rivera <grafikrobot@gmail.com> wrote:


On Mon, Sep 26, 2016 at 2:23 PM, Steven Watanabe <watanabesj@gmail.com> wrote:
AMDG

On 09/26/2016 11:20 AM, aaron@aaronboman.com wrote:
>
> The biggest performance hit is the Features, Properties,
> and PropertySet instances. Based on the fact that there
> is a property_set module written in C, I'm assuming that
> Jam, at one point, suffered the same problem.
>

  It still does have this problem.  Even after
all the optimizations I made, a significant
fraction of memory usage and running time is
spent in this area.  The Jam implementation
may not be as slow as python, but it's not
exactly fast either.

Actually.. I've been doing some perf measurements in the past few days on b2 engine and I was rather surprised where the time goes (not the memory). For example, currently, the most expensive operation is in switching module contexts. Specifically here <https://github.com/boostorg/build/blob/develop/src/engine/function.c#L4169>. There are many reasons for why that's slow (some obvious from just looking at those few lines). But the key problem in the current implementation is that other than the optimization work Steven did we haven't done design changes for optimizations. But that's something I was about to get into in an imminent future email :-)

Grr.. And that's the wrong line link.. Here's the correct one <https://github.com/boostorg/build/blob/develop/src/engine/function.c#L3850>.

--
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail