From 0869857bf3a6149697078a44d853585111b0621f Mon Sep 17 00:00:00 2001 From: John OHara Date: Mon, 21 Oct 2019 13:34:48 +0100 Subject: [PATCH] Disable native image PrintAnalysisCallTree by default, change semantics to 'enabledReports=true' Reduces heap allocation and increase build speed of a default native image build --- .../io/quarkus/deployment/pkg/NativeConfig.java | 2 +- .../pkg/steps/NativeImageBuildStep.java | 2 +- .../io/quarkus/gradle/tasks/QuarkusNative.java | 16 +++++++++++----- .../java/io/quarkus/maven/NativeImageMojo.java | 9 ++++++++- .../integration-test-pom.xml | 2 +- integration-tests/elytron-security-jdbc/pom.xml | 2 +- .../integration-tests/itest/pom.xml | 2 +- 7 files changed, 24 insertions(+), 11 deletions(-) diff --git a/core/deployment/src/main/java/io/quarkus/deployment/pkg/NativeConfig.java b/core/deployment/src/main/java/io/quarkus/deployment/pkg/NativeConfig.java index e2f2fdab703b7..3dca86421c74e 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/pkg/NativeConfig.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/pkg/NativeConfig.java @@ -164,7 +164,7 @@ public class NativeConfig { * If reporting on call paths should be enabled */ @ConfigItem(defaultValue = "false") - public boolean disableReports; + public boolean enableReports; /** * Additional arguments to pass to the build process diff --git a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildStep.java b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildStep.java index 5399f5ddfaf40..b559b52dc487d 100644 --- a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildStep.java +++ b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildStep.java @@ -198,7 +198,7 @@ public NativeImageBuildItem build(NativeConfig nativeConfig, NativeImageSourceJa if (nativeConfig.debugBuildProcess) { command.add("-J-Xrunjdwp:transport=dt_socket,address=" + DEBUG_BUILD_PROCESS_PORT + ",server=y,suspend=y"); } - if (!nativeConfig.disableReports) { + if (nativeConfig.enableReports) { command.add("-H:+PrintAnalysisCallTree"); } if (nativeConfig.dumpProxies) { diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java index fc489be335f4b..6fbb66f02054d 100644 --- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java +++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java @@ -72,7 +72,7 @@ public class QuarkusNative extends QuarkusTask { private boolean fullStackTraces = true; - private boolean disableReports; + private boolean enableReports; private List additionalBuildArgs; @@ -343,13 +343,19 @@ public void setFullStackTraces(boolean fullStackTraces) { @Optional @Input - public boolean isDisableReports() { - return disableReports; + public boolean isEnableReports() { + return enableReports; } + @Deprecated @Option(description = "Disable reports", option = "disable-reports") public void setDisableReports(boolean disableReports) { - this.disableReports = disableReports; + this.enableReports = !disableReports; + } + + @Option(description = "Enable reports", option = "enable-reports") + public void setEnableReports(boolean enableReports) { + this.enableReports = enableReports; } @Optional @@ -435,7 +441,7 @@ public void accept(ConfigBuilder configBuilder) { configs.add("quarkus.native.debug-build-process", debugBuildProcess); configs.add("quarkus.native.debug-symbols", debugSymbols); - configs.add("quarkus.native.disable-reports", disableReports); + configs.add("quarkus.native.enable-reports", enableReports); if (dockerBuild != null) { configs.add("quarkus.native.docker-build", dockerBuild); } diff --git a/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java index a4b71136ee116..396ac5b3b1fb0 100644 --- a/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java +++ b/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java @@ -130,9 +130,13 @@ public class NativeImageMojo extends AbstractMojo { @Parameter(defaultValue = "true") private Boolean fullStackTraces; + @Deprecated @Parameter(defaultValue = "${native-image.disable-reports}") private Boolean disableReports; + @Parameter(defaultValue = "${native-image.enable-reports}") + private Boolean enableReports; + @Parameter private List additionalBuildArgs; @@ -333,7 +337,10 @@ public void accept(ConfigBuilder configBuilder) { configs.add("quarkus.native.debug-symbols", debugSymbols.toString()); } if (disableReports != null) { - configs.add("quarkus.native.disable-reports", disableReports.toString()); + configs.add("quarkus.native.enable-reports", new Boolean(!disableReports).toString()); + } + if (enableReports != null) { + configs.add("quarkus.native.enable-reports", enableReports.toString()); } if (containerRuntime != null) { configs.add("quarkus.native.container-runtime", containerRuntime); diff --git a/devtools/maven/src/main/resources/create-extension-templates/integration-test-pom.xml b/devtools/maven/src/main/resources/create-extension-templates/integration-test-pom.xml index cc8a75ae98a0b..25505bd88e682 100644 --- a/devtools/maven/src/main/resources/create-extension-templates/integration-test-pom.xml +++ b/devtools/maven/src/main/resources/create-extension-templates/integration-test-pom.xml @@ -107,7 +107,7 @@ ${graalvmHome} true true - true + false diff --git a/integration-tests/elytron-security-jdbc/pom.xml b/integration-tests/elytron-security-jdbc/pom.xml index 13badcb527484..077a387a0e099 100644 --- a/integration-tests/elytron-security-jdbc/pom.xml +++ b/integration-tests/elytron-security-jdbc/pom.xml @@ -106,7 +106,7 @@ ${graalvmHome} true true - true + false diff --git a/integration-tests/maven/src/test/resources/expected/create-extension-pom-itest/integration-tests/itest/pom.xml b/integration-tests/maven/src/test/resources/expected/create-extension-pom-itest/integration-tests/itest/pom.xml index d08e2311e109b..1ccd2892cbcb3 100644 --- a/integration-tests/maven/src/test/resources/expected/create-extension-pom-itest/integration-tests/itest/pom.xml +++ b/integration-tests/maven/src/test/resources/expected/create-extension-pom-itest/integration-tests/itest/pom.xml @@ -101,7 +101,7 @@ ${graalvmHome} true true - true + false