Jakub Gwóźdź
08/28/2025, 4:47 AMmain()
that I run just from IntelliJ (ctrl-r or click-the-green-triangle).
And I noticed one thing: when there is a relatively small number of such files, each run is rather quick, but as soon as it grows, the delay became more and more noticeable and inconvenient. Even if between each run I just edit a tiny bit of code in one tiny file not really connected to rest of the project, it looks like Amper plugin is rebuilding everything?
You might want to look more closely to this at some point 🙂joffrey
08/28/2025, 7:37 AMJakub Gwóźdź
08/28/2025, 7:40 AMchristophsturm
08/28/2025, 8:57 AMjoffrey
08/28/2025, 9:04 AMnPlatforms * 2
compilations: main and test for each platform. Each compilation works with its own set of fragments. For example, the iosArm64
main compilation will compile src
, src@native
, src@apple
, src@ios
, and src@iosArm64
together, while the jvm
test compilation will compile test
and test@jvm
together. So technically it is slightly more granular than entire modules.
We have some incremental cache that protects each compilation: if its sources, settings, dependencies, and output classes haven't changed, we don't recompile. If anything changed we recompile the (entire) corresponding set of sources (this is where real incremental compilation will play a big role).