diff --git a/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java b/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java index fe90cf55f562..29578d6817e0 100644 --- a/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java @@ -59,8 +59,7 @@ import org.jetbrains.jps.client.CompileServerClient; import org.jetbrains.jps.server.ClasspathBootstrap; import org.jetbrains.jps.server.Server; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; +import javax.tools.*; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -417,12 +416,18 @@ public class CompileServerManager implements ApplicationComponent{ final String vmExecutablePath = ((JavaSdkType)projectJdk.getSdkType()).getVMExecutablePath(projectJdk); cmdLine.setExePath(vmExecutablePath); cmdLine.addParameter("-server"); - cmdLine.addParameter("-ea"); cmdLine.addParameter("-XX:MaxPermSize=150m"); cmdLine.addParameter("-XX:ReservedCodeCacheSize=64m"); + cmdLine.addParameter("-Xmx" + Registry.intValue("compiler.server.heap.size") + "m"); cmdLine.addParameter("-Djava.awt.headless=true"); //cmdLine.addParameter("-DuseJavaUtilZip"); - cmdLine.addParameter("-Xmx" + Registry.intValue("compiler.server.heap.size") + "m"); + final String additionalOptions = Registry.stringValue("compiler.server.vm.options"); + if (!StringUtil.isEmpty(additionalOptions)) { + final StringTokenizer tokenizer = new StringTokenizer(additionalOptions, " ", false); + while (tokenizer.hasMoreTokens()) { + cmdLine.addParameter(tokenizer.nextToken()); + } + } // debugging final int debugPort = Registry.intValue("compiler.server.debug.port"); diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 7cd59ea6ff8e..1df80eca6399 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -128,6 +128,9 @@ compiler.max.static.constants.searches.description=If the number of changed comp compiler.server.heap.size=300 compiler.server.heap.size.description=Heap size value in MB for the compile server process +compiler.server.vm.options=-ea +compiler.server.vm.options.description=Additional options for compile server's VM + compiler.server.use.memory.temp.cache=true compiler.server.use.memory.temp.cache.description=Store temporary data in memory for faster compilation; requires larger server heap size