using THashMap in order to save memory occupied by Map.Entry objects

This commit is contained in:
Maxim.Mossienko
2012-01-23 20:23:46 +04:00
parent a0de282285
commit 05bb3dcfa4
7 changed files with 31 additions and 30 deletions
@@ -31,10 +31,10 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.ReflectionCache;
import com.intellij.util.containers.ConcurrentHashMap;
import com.intellij.util.containers.HashMap;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusFactory;
import com.intellij.util.pico.IdeaPicoContainer;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -415,13 +415,13 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements
}
protected class ComponentsRegistry {
private final Map<Class, Object> myInterfaceToLockMap = new HashMap<Class, Object>();
private final Map<Class, Class> myInterfaceToClassMap = new HashMap<Class, Class>();
private final Map<Class, Object> myInterfaceToLockMap = new THashMap<Class, Object>();
private final Map<Class, Class> myInterfaceToClassMap = new THashMap<Class, Class>();
private final ArrayList<Class> myComponentInterfaces = new ArrayList<Class>(); // keeps order of component's registration
private final Map<String, BaseComponent> myNameToComponent = new HashMap<String, BaseComponent>();
private final Map<String, BaseComponent> myNameToComponent = new THashMap<String, BaseComponent>();
private final List<ComponentConfig> myComponentConfigs = new ArrayList<ComponentConfig>();
private final List<Object> myImplementations = new ArrayList<Object>();
private final Map<Class, ComponentConfig> myComponentClassToConfig = new java.util.HashMap<Class, ComponentConfig>();
private final Map<Class, ComponentConfig> myComponentClassToConfig = new THashMap<Class, ComponentConfig>();
private boolean myClassesLoaded = false;
private void loadClasses() {
@@ -19,13 +19,13 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.extensions.impl.ExtensionsAreaImpl;
import com.intellij.openapi.util.Disposer;
import com.intellij.util.containers.MultiMap;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class Extensions {
@@ -33,11 +33,11 @@ public class Extensions {
public static final ExtensionPointName<AreaListener> AREA_LISTENER_EXTENSION_POINT = new ExtensionPointName<AreaListener>("com.intellij.arealistener");
private static final Map<AreaInstance,ExtensionsAreaImpl> ourAreaInstance2area = new HashMap<AreaInstance, ExtensionsAreaImpl>();
private static final Map<AreaInstance,ExtensionsAreaImpl> ourAreaInstance2area = new THashMap<AreaInstance, ExtensionsAreaImpl>();
private static ExtensionsAreaImpl ourRootArea = createRootArea();
private static final MultiMap<String, AreaInstance> ourAreaClass2instances = new MultiMap<String, AreaInstance>();
private static final Map<AreaInstance,String> ourAreaInstance2class = new HashMap<AreaInstance, String>();
private static final Map<String,AreaClassConfiguration> ourAreaClass2Configuration = new HashMap<String, AreaClassConfiguration>();
private static final Map<AreaInstance,String> ourAreaInstance2class = new THashMap<AreaInstance, String>();
private static final Map<String,AreaClassConfiguration> ourAreaClass2Configuration = new THashMap<String, AreaClassConfiguration>();
private static ExtensionsAreaImpl createRootArea() {
ExtensionsAreaImpl rootArea = new ExtensionsAreaImpl(null, null, null, ourLogger);
@@ -17,7 +17,7 @@ package com.intellij.codeInsight.daemon;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import com.intellij.util.containers.HashMap;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -27,10 +27,10 @@ import java.util.Map;
public class HighlightDisplayKey {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.HighlightDisplayKey");
private static final HashMap<String,HighlightDisplayKey> ourNameToKeyMap = new HashMap<String, HighlightDisplayKey>();
private static final HashMap<String,HighlightDisplayKey> ourIdToKeyMap = new HashMap<String, HighlightDisplayKey>();
private static final Map<HighlightDisplayKey, String> ourKeyToDisplayNameMap = new HashMap<HighlightDisplayKey, String>();
private static final Map<HighlightDisplayKey, String> ourKeyToAlternativeIDMap = new HashMap<HighlightDisplayKey, String>();
private static final Map<String,HighlightDisplayKey> ourNameToKeyMap = new THashMap<String, HighlightDisplayKey>();
private static final Map<String,HighlightDisplayKey> ourIdToKeyMap = new THashMap<String, HighlightDisplayKey>();
private static final Map<HighlightDisplayKey, String> ourKeyToDisplayNameMap = new THashMap<HighlightDisplayKey, String>();
private static final Map<HighlightDisplayKey, String> ourKeyToAlternativeIDMap = new THashMap<HighlightDisplayKey, String>();
private final String myName;
private final String myID;
@@ -42,6 +42,7 @@ import com.intellij.profile.codeInspection.InspectionProfileManager;
import com.intellij.profile.codeInspection.SeverityProvider;
import com.intellij.psi.PsiElement;
import com.intellij.psi.search.scope.packageSet.NamedScope;
import gnu.trove.THashMap;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -59,7 +60,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInspection.ex.InspectionProfileImpl");
@NonNls private static final String VALID_VERSION = "1.0";
private Map<String, ToolsImpl> myTools = new HashMap<String, ToolsImpl>();
private Map<String, ToolsImpl> myTools = new THashMap<String, ToolsImpl>();
private Map<String, Boolean> myDisplayLevelMap;
private Map<String, Element> myDeinstalledInspectionsSettings = new TreeMap<String, Element>();
@@ -23,6 +23,7 @@ import com.intellij.util.containers.HashMap;
import com.intellij.util.ui.JBInsets;
import com.intellij.util.ui.SameColor;
import com.intellij.util.ui.UIUtil;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -37,7 +38,7 @@ import java.util.Map;
*/
public abstract class AbstractNavBarUI implements NavBarUI {
private Map<NavBarItem, Map<ImageType, BufferedImage>> myCache = new HashMap<NavBarItem, Map<ImageType, BufferedImage>>();
private Map<NavBarItem, Map<ImageType, BufferedImage>> myCache = new THashMap<NavBarItem, Map<ImageType, BufferedImage>>();
private enum ImageType {
INACTIVE, NEXT_ACTIVE, ACTIVE, INACTIVE_FLOATING, NEXT_ACTIVE_FLOATING, ACTIVE_FLOATING,
@@ -68,10 +68,7 @@ import com.intellij.util.io.*;
import com.intellij.util.io.storage.HeavyProcessLatch;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.messages.MessageBusConnection;
import gnu.trove.TIntHashSet;
import gnu.trove.TIntIterator;
import gnu.trove.TIntProcedure;
import gnu.trove.TObjectIntHashMap;
import gnu.trove.*;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -93,29 +90,29 @@ public class FileBasedIndex implements ApplicationComponent {
private static final Logger LOG = Logger.getInstance("#com.intellij.util.indexing.FileBasedIndex");
@NonNls
private static final String CORRUPTION_MARKER_NAME = "corruption.marker";
private final Map<ID<?, ?>, Pair<UpdatableIndex<?, ?, FileContent>, InputFilter>> myIndices = new HashMap<ID<?, ?>, Pair<UpdatableIndex<?, ?, FileContent>, InputFilter>>();
private final Map<ID<?, ?>, Semaphore> myUnsavedDataIndexingSemaphores = new HashMap<ID<?,?>, Semaphore>();
private final Map<ID<?, ?>, Pair<UpdatableIndex<?, ?, FileContent>, InputFilter>> myIndices = new THashMap<ID<?, ?>, Pair<UpdatableIndex<?, ?, FileContent>, InputFilter>>();
private final Map<ID<?, ?>, Semaphore> myUnsavedDataIndexingSemaphores = new THashMap<ID<?,?>, Semaphore>();
private final TObjectIntHashMap<ID<?, ?>> myIndexIdToVersionMap = new TObjectIntHashMap<ID<?, ?>>();
private final Set<ID<?, ?>> myNotRequiringContentIndices = new HashSet<ID<?, ?>>();
private final Set<ID<?, ?>> myRequiringContentIndices = new HashSet<ID<?, ?>>();
private final Set<FileType> myNoLimitCheckTypes = new HashSet<FileType>();
private final Set<ID<?, ?>> myNotRequiringContentIndices = new THashSet<ID<?, ?>>();
private final Set<ID<?, ?>> myRequiringContentIndices = new THashSet<ID<?, ?>>();
private final Set<FileType> myNoLimitCheckTypes = new THashSet<FileType>();
private final PerIndexDocumentVersionMap myLastIndexedDocStamps = new PerIndexDocumentVersionMap();
private final ChangedFilesCollector myChangedFilesCollector;
private final List<IndexableFileSet> myIndexableSets = ContainerUtil.createEmptyCOWList();
private final Map<IndexableFileSet, Project> myIndexableSetToProjectMap = new HashMap<IndexableFileSet, Project>();
private final Map<IndexableFileSet, Project> myIndexableSetToProjectMap = new THashMap<IndexableFileSet, Project>();
private static final int OK = 1;
private static final int REQUIRES_REBUILD = 2;
private static final int REBUILD_IN_PROGRESS = 3;
private static final Map<ID<?, ?>, AtomicInteger> ourRebuildStatus = new HashMap<ID<?,?>, AtomicInteger>();
private static final Map<ID<?, ?>, AtomicInteger> ourRebuildStatus = new THashMap<ID<?,?>, AtomicInteger>();
private final VirtualFileManagerEx myVfManager;
private final FileDocumentManager myFileDocumentManager;
private final FileTypeManager myFileTypeManager;
private final ConcurrentHashSet<ID<?, ?>> myUpToDateIndices = new ConcurrentHashSet<ID<?, ?>>();
private final Map<Document, PsiFile> myTransactionMap = new HashMap<Document, PsiFile>();
private final Map<Document, PsiFile> myTransactionMap = new THashMap<Document, PsiFile>();
private static final int ALREADY_PROCESSED = 0x02;
@Nullable private final String myConfigPath;
@@ -42,7 +42,9 @@ import com.intellij.util.containers.StripedLockIntObjectConcurrentHashMap;
import com.intellij.util.io.DupOutputStream;
import com.intellij.util.io.ReplicatorInputStream;
import com.intellij.util.messages.MessageBus;
import gnu.trove.THashMap;
import gnu.trove.TIntHashSet;
import gnu.trove.TIntObjectHashMap;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -69,8 +71,8 @@ public class PersistentFS extends ManagingFS implements ApplicationComponent {
private final MessageBus myEventsBus;
private final Map<String, VirtualFileSystemEntry> myRoots = new HashMap<String, VirtualFileSystemEntry>();
private final Map<Integer, VirtualFileSystemEntry> myRootsById = new HashMap<Integer, VirtualFileSystemEntry>();
private final Map<String, VirtualFileSystemEntry> myRoots = new THashMap<String, VirtualFileSystemEntry>();
private final TIntObjectHashMap<VirtualFileSystemEntry> myRootsById = new TIntObjectHashMap<VirtualFileSystemEntry>();
private VirtualFileSystemEntry myFakeRoot;
private final Object INPUT_LOCK = new Object();