Thanks for the good explanation and instructions about how to reproduce it.
I think it’s ok when you see only a single daemon process with 15 threads and not 15 daemon processes. The JVM itself has certain threads running. When the daemon is idle, I see 24 threads in the jstack
output which of 5 are threads created by Gradle. That’s with Oracle Java 1.8.0_66 on Linux.
Gradle isn’t currently optimized to extremely low memory consumption. It does consume a lot of memory compared to some non-Java based tools.
You might want to tune the JVM memory settings if you want to optimize for low memory consumption: Continuous mode eating too much memory .
There is also information about the Gradle Daemon in the manual:
https://docs.gradle.org/current/userguide/gradle_daemon.html
That might answer some of your questions about it.
Do you have a particular reason to optimize for low memory use?