From 9207b87b99cd8bb10377ce40726e7457ade3ff2b Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Sun, 8 Dec 2013 21:31:03 +0100 Subject: [PATCH] avoid easy garbage java.util.ArrayList$Itr: 1,720,417,512 (1%) bytes in 71,684,063 (2%) objects (avg size 24 bytes) java.util.ArrayList.iterator: 1,720,392,864 (99%) bytes in 71,683,036 (99%) objects com.intellij.openapi.projectRoots.impl.ProjectJdkTableImpl.findJdk: 938,831,640 (54%) bytes in 39,117,985 (54%) objects com.intellij.openapi.editor.impl.ComplementaryFontsRegistry.getFontAbleToDisplay: 218,420,520 (12%) bytes in 9,100,855 (12%) objects --- .../openapi/projectRoots/impl/ProjectJdkTableImpl.java | 4 +++- .../openapi/editor/impl/ComplementaryFontsRegistry.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java index 3a5c3ecf355d..c56f397cc1f1 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/ProjectJdkTableImpl.java @@ -109,7 +109,9 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements PersistentSt @Override @Nullable public Sdk findJdk(String name) { - for (Sdk jdk : mySdks) { + //noinspection ForLoopReplaceableByForEach + for (int i = 0, len = mySdks.size(); i < len; ++i) { // avoid foreach, it instantiates ArrayList$Itr, this traversal happens very often + final Sdk jdk = mySdks.get(i); if (Comparing.strEqual(name, jdk.getName())) { return jdk; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java index 1a9343f82a67..148405d35bdf 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ComplementaryFontsRegistry.java @@ -148,7 +148,8 @@ public class ComplementaryFontsRegistry { boolean tryDefaultFont = true; List fontFamilies = preferences.getEffectiveFontFamilies(); FontInfo result; - for (String fontFamily : fontFamilies) { + for (int i = 0, len = fontFamilies.size(); i < len; ++i) { + final String fontFamily = fontFamilies.get(i); result = doGetFontAbleToDisplay(c, preferences.getSize(fontFamily), style, fontFamily); if (result != null) { return result;