[platform] more accurate CPU arch detection (system health)

GitOrigin-RevId: 26c124e321381273034d007a3d1a8f22e5efff17
This commit is contained in:
Roman Shevchenko
2020-12-29 21:26:48 +00:00
committed by intellij-monorepo-bot
parent c51bbdd143
commit 6fd2c9dd58
2 changed files with 6 additions and 4 deletions
@@ -17,6 +17,7 @@ import com.intellij.openapi.extensions.PluginId;
import com.intellij.openapi.updateSettings.impl.UpdateChecker;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.io.MappingFailedException;
import com.intellij.util.system.CpuArch;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
@@ -121,7 +122,7 @@ public class DefaultIdeaErrorLogger implements ErrorLogger {
}
private static void processMappingFailed(IdeaLoggingEvent event) {
if (!ourMappingFailedNotificationPosted && SystemInfo.isWindows && SystemInfo.is32Bit) {
if (!ourMappingFailedNotificationPosted && SystemInfo.isWindows && CpuArch.isIntel32()) {
ourMappingFailedNotificationPosted = true;
String exceptionMessage = event.getThrowable().getMessage();
String text = DiagnosticBundle.message("notification.content.0.br.possible.cause.unable.to.allocate.memory", exceptionMessage);
@@ -129,4 +130,4 @@ public class DefaultIdeaErrorLogger implements ErrorLogger {
DiagnosticBundle.message("notification.title.memory.mapping.failed"), text, NotificationType.WARNING), null);
}
}
}
}
@@ -23,6 +23,7 @@ import com.intellij.util.MathUtil;
import com.intellij.util.SystemProperties;
import com.intellij.util.TimeoutUtil;
import com.intellij.util.concurrency.AppExecutorUtil;
import com.intellij.util.system.CpuArch;
import com.sun.jna.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -46,7 +47,7 @@ final class SystemHealthMonitor extends PreloadingActivity {
private static final Logger LOG = Logger.getInstance(SystemHealthMonitor.class);
private static final String DISPLAY_ID = "System Health";
private static final int MIN_RESERVED_CODE_CACHE_SIZE = PluginManagerCore.isRunningFromSources() ? 240 : SystemInfo.is64Bit ? 512 : 384;
private static final int MIN_RESERVED_CODE_CACHE_SIZE = PluginManagerCore.isRunningFromSources() ? 240 : CpuArch.CURRENT.width == 32 ? 384 : 512;
@Override
public void preload(@NotNull ProgressIndicator indicator) {
@@ -90,7 +91,7 @@ final class SystemHealthMonitor extends PreloadingActivity {
JdkBundle bundledJre = JdkBundle.createBundled();
if (bundledJre != null && bundledJre.isOperational()) {
String appName = ApplicationNamesInfo.getInstance().getProductName().toLowerCase(Locale.ENGLISH);
String configName = appName + (!SystemInfo.isWindows ? "" : SystemInfo.is64Bit ? "64.exe" : ".exe") + ".jdk";
String configName = appName + (!SystemInfo.isWindows ? "" : CpuArch.isIntel64() ? "64.exe" : ".exe") + ".jdk";
Path configFile = Paths.get(PathManager.getConfigPath(), configName);
if (Files.isRegularFile(configFile)) {
switchAction = new NotificationAction(IdeBundle.message("action.SwitchToJBR.text")) {