IDEA-116324 IDEA 13 compiler uses some old xmx setting

This commit is contained in:
Eugene Zhuravlev
2013-11-14 15:39:43 +01:00
parent eb5911c688
commit 6dd1423335
3 changed files with 15 additions and 9 deletions
@@ -19,6 +19,7 @@ import com.intellij.compiler.CompilerConfiguration;
import com.intellij.compiler.CompilerConfigurationImpl;
import com.intellij.compiler.CompilerWorkspaceConfiguration;
import com.intellij.compiler.MalformedPatternException;
import com.intellij.compiler.impl.javaCompiler.javac.JavacConfiguration;
import com.intellij.compiler.server.BuildManager;
import com.intellij.ide.PowerSaveMode;
import com.intellij.openapi.compiler.CompilerBundle;
@@ -159,7 +160,8 @@ public class CompilerUIConfigurable implements SearchableConfigurable, Configura
myCbEnableAutomake.setSelected(workspaceConfiguration.MAKE_PROJECT_ON_SAVE);
myCbParallelCompilation.setSelected(workspaceConfiguration.PARALLEL_COMPILATION);
myCbRebuildOnDependencyChange.setSelected(workspaceConfiguration.REBUILD_ON_DEPENDENCY_CHANGE);
myHeapSizeField.setText(String.valueOf(workspaceConfiguration.COMPILER_PROCESS_HEAP_SIZE));
final int javacPreferred = JavacConfiguration.getOptions(myProject, JavacConfiguration.class).MAXIMUM_HEAP_SIZE; // for compatibility with older projects
myHeapSizeField.setText(String.valueOf(workspaceConfiguration.getProcessHeapSize(javacPreferred)));
final String options = workspaceConfiguration.COMPILER_PROCESS_ADDITIONAL_VM_OPTIONS;
myVMOptionsField.setText(options == null ? "" : options.trim());
@@ -100,7 +100,8 @@ import org.jetbrains.jps.cmdline.ClasspathBootstrap;
import org.jetbrains.jps.incremental.Utils;
import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
import javax.tools.*;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
import java.awt.*;
import java.io.File;
import java.io.IOException;
@@ -838,13 +839,7 @@ public class BuildManager implements ApplicationComponent{
cmdLine.setExePath(vmExecutablePath);
//cmdLine.addParameter("-XX:MaxPermSize=150m");
//cmdLine.addParameter("-XX:ReservedCodeCacheSize=64m");
int heapSize = config.COMPILER_PROCESS_HEAP_SIZE;
// todo: remove when old make implementation is removed
if (heapSize == CompilerWorkspaceConfiguration.DEFAULT_COMPILE_PROCESS_HEAP_SIZE) {
// check if javac is set to use larger heap, and if so, use it.
heapSize = Math.max(heapSize, JavacConfiguration.getOptions(project, JavacConfiguration.class).MAXIMUM_HEAP_SIZE);
}
final int heapSize = config.getProcessHeapSize(JavacConfiguration.getOptions(project, JavacConfiguration.class).MAXIMUM_HEAP_SIZE);
cmdLine.addParameter("-Xmx" + heapSize + "m");
@@ -69,4 +69,13 @@ public class CompilerWorkspaceConfiguration implements PersistentStateComponent<
public boolean allowAutoMakeWhileRunningApplication() {
return false;/*ALLOW_AUTOMAKE_WHILE_RUNNING_APPLICATION*/
}
public int getProcessHeapSize(final int javacPreferredHeapSize) {
final int heapSize = COMPILER_PROCESS_HEAP_SIZE;
if (heapSize != DEFAULT_COMPILE_PROCESS_HEAP_SIZE) {
return heapSize;
}
// compatibility with older builds: if javac is set to use larger heap, and if so, use it.
return Math.max(heapSize, javacPreferredHeapSize);
}
}