[Qbs] Improving qbs resolve performance

Christian Gagneraud chgans at gmail.com
Thu Jul 18 07:46:56 CEST 2019


On Sun, 14 Jul 2019 at 17:30, Christian Gagneraud <chgans at gmail.com> wrote:
> Looking at valgrind/callgrind data, it seems that the hot path is a
> loop, here is a simplified tree with the final loop
> - resolveProjectFromScratch()
> - loadProject()
> - handleTopLevelProject()
> - setupProductDependencies()
> - 0 - resolveDependencies()
> - 1 - resolveDependsItem()
> - 2 - loadModule()
> - 3 - instanciateModule()
> - 4 - goto 0

There is indeed a cache system, but it is only enable in very few
location (Using EvalCacheEnabler).
And that's one of the hot spots: Evaluator::property() - 26% of the
fetched instructions while resolving the qbs project.
I need to test with resolving QtCreator.

Chris


More information about the Qbs mailing list