Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-12-04 08:05:33


Hi janssoaf,

> I'm trying to adapt our projects to BBv2 and I'm experiencing severe
> performance problems with the msvc toolset. Building the dependency
> graph of a project takes fifty times as long compared with the gcc
> toolset.

Hmm! 50 times longer? Something should be really wrong somewhere.

> The project consists of a lot of DLLs which depend on each
> other, so I suspect that import libraries are the culprit.
>
> Comparing the top of the dependency graph of a simple example with two
> DLLs I get :
>
> gcc:
> 0 Name: all
>
> : Stable
> : NOTFILE
> : Depends on <.../gcc/...>Cmpstrm.dll (stable) (max time)
>
> msvc:
> 0 Name: all
>
> : Stable
> : NOTFILE
> : Depends on <.../msvc/...>Cmpstrm.dll (stable) (max time)
> : Depends on <.../msvc/...>TBZLib.dll (stable)
> : Depends on <.../msvc/...>Cmpstrm.lib (stable)
>
> The number of top level dependencies grows exponentially when more
> DLLs are included. Profiling shows that with the msvc toolset many
> more method calls are necessary than in the gcc toolset, e.g.

Is the grows indeed exponential? I'd suspect that the number of libs should be
twice as much as the number for gcc.

> gcc:
> 125 125 1680 set.intersection
>
> msvc:
> 344900 344900 92412 set.intersection

Rather strange. Maybe, you can send me profiles for both gcc and msvc, so that
I can take a deeper look. This might be the known scalability problem with
checks for unused sources, that Pedro has already reported and which will be
fixed pretty soon. Or some other problem that we don't know about yet.

> Can this behaviour be improved?

I think so!

- Volodya

 


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