Document options to get fastest compile times? #758
Replies: 4 comments
-
In my experience, disabling lto is indeed helpful. For incremental builds, the most important option is usually using ccache which helps quite a lot. Another option is cleaning-up includes such that changing one file does not require rebuilding dozens of other files. But I think @sjunges made already good progress there. I tried using mold here, but preliminary timings were not conclusive yet. But you can use it as a starting point for mold. |
Beta Was this translation helpful? Give feedback.
-
The main trick during development I have is no LTO and being mindful which files you touch. For larger development efforts, I try to not compile the storm main library if I can somehow organise it. If you could run the profiler as described in #433 for a typical development cycle of yours, we can also see what is going on :-) |
Beta Was this translation helpful? Give feedback.
-
A fresh compile run with With STORM_DEVELOPER, No LTO, and using the ninja build system instead of make, I got the times down to 6min 38s. Simply using ninja instead of make already saved more than 20s. cmake .. -DSTORM_FORCE_SHIPPED_CARL=ON -DSTORM_USE_CLN_EA=OFF -DSTORM_USE_CLN_RF=OFF -DSTORM_DEVELOPER=ON -DSTORM_USE_LTO=OFF -G Ninja
time ninja We'll try do run similar experiments on a slow Windows machine with WSL and using mold, I'm hoping for some even bigger speedups. @sjunges Are you sure you mean #433? Which profiler do you mean? |
Beta Was this translation helpful? Give feedback.
-
Ah, sorry, i meant #443. In particular, there is a comment by MV that also clarifies how to run the compile time profiler. Other things that help:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello Team Storm! Are there documented options to get Storm to compile as fast as possible? As far as I can see, the only option to get Storm to compile faster is disabling LTO - but e.g. disabling some compiler optimizations might also be very helpful during development. In addition, we've seen with Caesar that switching to a more modern linker such as ldd/mold can speed up the linking process by a lot.
This issue is not the same as #443, because I'm only focused on speeding up incremental builds during development, not the full builds with all optimizations enabled.
Beta Was this translation helpful? Give feedback.
All reactions