Run parallel JavaExec's in same multi project without killing performance

(Staffan Forsell) #1

I’m looking for some advice on how to speed up parallel run configurations defined as Gradle JavaExec tasks when executed from IntelliJ.

We typically run 3 of these processes at the same time (simulator, server and gui) and this results in the first one starting in the idle daemon and the 2nd and 3rd processes waiting 10 seconds for the first daemon to become idle (which it never will) and then spawning a new daemon for each task. Spawning a new daemon for each successive processes makes this very slow to start our development processes.
Then after these processes finish, the 2 extra daemon are automatically killed.

Is there any best practice for this use-case? Is there a way to tell gradle to keep 3 matching daemons in this case? That way we would not have to wait as long for the other tasks to finish although at the cost of additional memory usage.

Our real goal here is to be able to run/debug multiple processes defined in gradle as efficiently as if we had defined these directly as IntelliJ run configurations or Eclipse launch configurations. Currently we are generating Eclipse launch configurations since we cannot debug JavaExec’s using Buildship.

Any thoughts? Anyone?