Faster compilation when having many programs

At some point, if you keep adding programs to the same openrndr-template things will start to get slow in IntelliJ Idea. I have now 84 programs and 114 kotlin files and it’s quite noticeable.

I figured out a solution.

I was throwing all my programs into a package called apps. What I did:

  • Add a second package where to store active programs. You could call the old package archived and the new one current.
  • Go to File > Project Structure > Modules > main > Sources.
  • Right click on the package to deactivate (archived or apps in my case).
  • Flag it as Excluded.

That’s it. Idea will no longer look into this folder, making everything fast again. In my case it compiles faster and autocomplete is much faster too.

Note: you can move programs back and forth between both folders. Move a program into current to work on it again, throw it into archive if you’re done for now.

What do you think about this approach? Do you know better ways to improve performance on growing collections of programs? I could clone the openrndr-template template again and start from scratch, but I want to have access to all the helpers and classes I’ve built so far (my packages called math, geometry, random, etc).


thank you! I was noticing this too

@abe Which Kotlin and Gradle versions are you using?

In my system I have this:

Gradle 6.5

Build time:   2020-06-13 14:39:45 UTC
Revision:     <unknown>

Kotlin:       1.3.72
Groovy:       2.5.11
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_252 (Oracle Corporation 25.252-b09)
OS:           Linux 5.7.6-arch1-1 amd64

But here

I see gradle 6.4

What’s the right way to check those values @dector ? And what impact does it have?

cd /path/to/your/projects
./gradlew --version

will should you values for the project.

I’m also using archive + libs + workbook strategy for genart project (mostly because I was compiling with K/JS and output js file was growing too fast, compiling/loading too slow).

However, on other projects (Gradle 6.5 + Kotlin 1.3.72) I’ve notices huge improvement in incremental compilation speed. I guess its because of the latest improvements in Gradle (e.g. see comparison between Gradle and Bazel).

Also there are few new options to speed-up build (Configuration cache and File System watching).

Also JB focusing on improving compiler speed in 1.4 release. We’ll see. But preliminary numbers seems very nice. :smiley:

1 Like

With K/JS do you mean javascript? with openrndr?

Yup, Kotlin/JavaScript. But I was using my own tool, not OpenRNDR.

Ah cool. Can you share anything about your tool? What can you do with it? Does it use WebGL?