From f2021b580e57a24da03a1b188ee4bbf99f20cdfd Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 10 Jun 2019 22:08:11 +0300 Subject: [PATCH] Do not fork java compile tasks when current JDK can be used I see the following improvements: * `clean dist --parallel` is ~10% faster (from 3:40 to 3:20) * incremental `dist --parallel` is ~50% faster (adding public method to org.jetbrains.kotlin.utils.SmartList) --- build.gradle.kts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f66070484f1..92b0cd98ba3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -716,12 +716,23 @@ fun jdkPath(version: String): String { fun Project.configureJvmProject(javaHome: String, javaVersion: String) { + val currentJavaHome = File(System.getProperty("java.home")!!).canonicalPath + val shouldFork = !currentJavaHome.startsWith(File(javaHome).canonicalPath) + tasks.withType { if (name != "compileJava9Java") { sourceCompatibility = javaVersion targetCompatibility = javaVersion - options.isFork = true - options.forkOptions.javaHome = file(javaHome) + + if (shouldFork) { + logger.info("$path will be forked with $javaHome") + options.isFork = true + options.forkOptions.javaHome = file(javaHome) + } else { + options.isFork = false + options.forkOptions.javaHome = null + } + options.compilerArgs.add("-proc:none") options.encoding = "UTF-8" }