From 69a9025be5ef4e60d5514d0edcb009599164c41e Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 29 Jan 2015 10:05:17 +0100 Subject: [PATCH] SONAR-6115 SonarQube is slower whilst running with Java8 vs Java7 --- .../src/main/java/org/sonar/application/App.java | 6 +++--- .../main/java/org/sonar/application/DefaultSettings.java | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sonar-application/src/main/java/org/sonar/application/App.java b/sonar-application/src/main/java/org/sonar/application/App.java index b70b2666de1..af325f1d370 100644 --- a/sonar-application/src/main/java/org/sonar/application/App.java +++ b/sonar-application/src/main/java/org/sonar/application/App.java @@ -65,7 +65,7 @@ public class App implements Stoppable { } List createCommands(Props props) { - List commands = new ArrayList(); + List commands = new ArrayList<>(); File homeDir = props.nonNullValueAsFile(ProcessConstants.PATH_HOME); File tempDir = props.nonNullValueAsFile(ProcessConstants.PATH_TEMP); JavaCommand elasticsearch = new JavaCommand("search"); @@ -85,11 +85,11 @@ public class App implements Stoppable { if (StringUtils.isBlank(props.value(ProcessConstants.CLUSTER_MASTER_HOST))) { JavaCommand webServer = new JavaCommand("web") .setWorkDir(homeDir) - .addJavaOptions("-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false") + .addJavaOptions(DefaultSettings.WEB_SERVER_FORCED_JVM_ARGS) .addJavaOptions(props.nonNullValue(ProcessConstants.WEB_JAVA_OPTS)) .addJavaOptions(props.nonNullValue(ProcessConstants.WEB_JAVA_ADDITIONAL_OPTS)) .setTempDir(tempDir.getAbsoluteFile()) - // required for logback tomcat valve + // required for logback tomcat valve .setEnvVariable(ProcessConstants.PATH_LOGS, props.nonNullValue(ProcessConstants.PATH_LOGS)) .setClassName("org.sonar.server.app.WebServer") .setArguments(props.rawProperties()) diff --git a/sonar-application/src/main/java/org/sonar/application/DefaultSettings.java b/sonar-application/src/main/java/org/sonar/application/DefaultSettings.java index de9f68054fa..f06d5fed675 100644 --- a/sonar-application/src/main/java/org/sonar/application/DefaultSettings.java +++ b/sonar-application/src/main/java/org/sonar/application/DefaultSettings.java @@ -28,6 +28,10 @@ import java.util.Map; class DefaultSettings { + public static final String WEB_SERVER_FORCED_JVM_ARGS = "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false " + + // jruby is slow with java 8: https://jira.codehaus.org/browse/SONAR-6115 + "-Djruby.compile.invokedynamic=false"; + private DefaultSettings() { // only static stuff } @@ -56,7 +60,7 @@ class DefaultSettings { } private static Map defaults() { - Map defaults = new HashMap(); + Map defaults = new HashMap<>(); defaults.put(ProcessConstants.CLUSTER_NAME, "sonarqube"); defaults.put(ProcessConstants.SEARCH_JAVA_OPTS, "-Xmx1G -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true " + "-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly " + @@ -78,7 +82,7 @@ class DefaultSettings { } private static Map defaultPorts() { - Map defaults = new HashMap(); + Map defaults = new HashMap<>(); defaults.put(ProcessConstants.SEARCH_PORT, 9001); return defaults; } -- 2.39.5