FYI - Build speed optimization - ccache massively speeds up build time #5018
Description
Hi there, I'm making an emscripten docker file for platformio for a web compile of FastLED.
I've been grinding on build speed for the last week. I want to report that one of the biggest wins was slapping on ccache in front of the compiler.
As many have mentioned before, PlatformIO has a tendency to rebuild everything whenever order of deps/defines changes, which makes sense. ccache is a great way to mitigate that effect.
Today I discovered auto clean and disabling it. This makes it even faster. However I'm not sure what the failure condition is going to be with disabling auto-clean.
This compiler project is kind of a special case. Users pretty much just compile against FastLED. So my use case is how much can I pre-warm the ccache in release/debug/quick modes, stash that as a docker image layer. Then when a file is sent it just compiles then link against fastled. Right now I'm still dealing with linking against a bunch of object files. I've tried to combine this into a giant lib but no luck so far.