Skip to content

Compile Times #443

@sjunges

Description

@sjunges

Generally, we are still fighting relatively long compile times despite major efforts to reduce them. I wanted to open this issue for some time to push us to improve here a bit further.

Earlier today, I generated a ninjatrace for building storm, completely, as a release build. This took 8m20s on my laptop, running 8 threads in parallel.

I attach the file here, you can open it in chrome://tracing to inspect it yourself. I also attach a screenshot

trace.json
image

You can see that on storm-main, many files actually compile rather quickly, however, towards the later stages, compile times increase drastically. I believe that this effect is mostly due to earlier efforts to reduce the compile times of often-recompiled parts.

I inspected one file, CtmcCslModelCheckerTest.cpp. This file took a whopping 30 seconds to compile. Why? With clang-profiling (see our Cmake option to enable this), it turned out that around 23s were due to including FormulaParser.h and PrismParser.h. There was a simple improvement to compile this file in 7 seconds rather than in 30: Do not include these two files. The code still compiles.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions