From 9737ecafacdfb0c65dee6e133ffff6d097b89752 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 31 Jul 2019 17:59:47 +0200 Subject: [PATCH] Don't rewrite -Xmx if we couldn't determine the current value (IDEA-219388) GitOrigin-RevId: c5c0a899a9d6f54bcb0a35b9bca7a62a3762f76c --- .../intellij/diagnostic/MemorySizeConfigurator.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/diagnostic/MemorySizeConfigurator.kt b/platform/platform-impl/src/com/intellij/diagnostic/MemorySizeConfigurator.kt index 51ce9cef7c7f..a67cbc54743a 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/MemorySizeConfigurator.kt +++ b/platform/platform-impl/src/com/intellij/diagnostic/MemorySizeConfigurator.kt @@ -17,7 +17,12 @@ class MemorySizeConfigurator : StartupActivity { override fun runActivity(project: Project) { if (ApplicationManager.getApplication().isUnitTestMode) return - val currentXmx = VMOptions.readOption(VMOptions.MemoryKind.HEAP, true) + var currentXmx = VMOptions.readOption(VMOptions.MemoryKind.HEAP, true) + if (currentXmx < 0) currentXmx = VMOptions.readOption(VMOptions.MemoryKind.HEAP, false) + if (currentXmx < 0) { + // Don't know how much -Xmx we have + return + } if (currentXmx > 750) { // Memory has already been adjusted by the user manually return @@ -31,12 +36,14 @@ class MemorySizeConfigurator : StartupActivity { val newXmx = MemorySizeConfiguratorService.getInstance().getSuggestedMemorySize(currentXmx, totalPhysicalMemory.toInt()) - val currentXms = VMOptions.readOption(VMOptions.MemoryKind.MIN_HEAP, true) - if (newXmx < currentXms) return + var currentXms = VMOptions.readOption(VMOptions.MemoryKind.MIN_HEAP, true) + if (currentXms < 0) currentXms = VMOptions.readOption(VMOptions.MemoryKind.MIN_HEAP, false) + + if (currentXms < 0 || newXmx < currentXms) return VMOptions.writeOption(VMOptions.MemoryKind.HEAP, newXmx) PropertiesComponent.getInstance().setValue("ide.memory.adjusted", true) - LOG.info("Physical memory ${totalPhysicalMemory}M, -Xmx adjusted to ${newXmx}M") + LOG.info("Physical memory ${totalPhysicalMemory}M, minimum memory size ${currentXms}M, -Xmx adjusted from ${currentXmx}M to ${newXmx}M") } companion object {