描述bug内容
未在IDEA中开启DebugTools进行调试,但是DebugTools仍会占用过高的内存
版本信息
IDEA的内存分析报告关于DebugTools的内存占用如下方代码块所示
Root 1:
[1.31M/ 29%/64.6MB] 538MB 1 ROOT: Static field: io.github.future0923.debug.tools.idea.utils.StateUtils.PROJECT_OPEN_TIME_MAP
[1.31M/ 29%/64.6MB] 538MB 1 (root): java.util.concurrent.ConcurrentHashMap
[1.31M/ 29%/64.6MB] 538MB 1 table: java.util.concurrent.ConcurrentHashMap$Node[]
[1.31M/ 29%/64.6MB] 538MB 19 []: java.util.concurrent.ConcurrentHashMap$Node
[1.07M/ 23%/53.0MB] 433MB 19 ! +-key: com.intellij.openapi.project.impl.ProjectImpl (disposed)
[ 599K/ 13%/24.9MB] 106MB 19 | +-extensionArea: com.intellij.openapi.extensions.impl.ExtensionsAreaImpl
[ 599K/ 13%/24.9MB] 106MB 19 | | extensionPoints: java.util.HashMap
[ 599K/ 13%/24.9MB] 106MB 19 | | table: java.util.HashMap$Node[]
[ 599K/ 13%/24.9MB] 105MB 1253 | | []: java.util.HashMap$Node
[ 596K/ 13%/24.7MB] 103MB 159 | | value: com.intellij.openapi.extensions.impl.InterfaceExtensionPoint
[ 595K/ 13%/24.7MB] 96.8MB 68 | | cachedExtensions: java.util.ImmutableCollections$ListN
[ 595K/ 13%/24.7MB] 96.8MB 68 | | elements: java.lang.Object[]
[ 533K/ 11%/21.9MB] 81.2MB 14 ! | | []: com.intellij.packageChecker.maven.MavenProjectDependenciesModel (disposed)
[ 531K/ 11%/21.9MB] 71.8MB 14 ! | | mavenProjectsManager: org.jetbrains.idea.maven.project.MavenProjectsManagerEx (disposed)
[ 531K/ 11%/21.9MB] 71.6MB 14 | | myProjectsTreeRef: java.util.concurrent.atomic.AtomicReference
[ 531K/ 11%/21.9MB] 71.6MB 14 | | value: org.jetbrains.idea.maven.project.MavenProjectsTree
[ 384K/ 8%/16.1MB] 53.5MB 14 | | +-myMavenIdToProjectMapping: java.util.HashMap
[ 384K/ 8%/16.1MB] 53.4MB 14 | | | table: java.util.HashMap$Node[]
[ 384K/ 8%/16.1MB] 53.4MB 104 | | | []: java.util.HashMap$Node
[ 379K/ 8%/15.9MB] 53.0MB 96 | | | value: org.jetbrains.idea.maven.project.MavenProject
[ 379K/ 8%/15.9MB] 51.5MB 96 | | | myState: org.jetbrains.idea.maven.project.MavenProjectState
[ 226K/ 5%/8.63MB] 25.6MB 96 | | | +-managedDependencies: java.util.HashMap
[ 226K/ 5%/8.63MB] 25.6MB 96 | | | | table: java.util.HashMap$Node[]
[ 226K/ 5%/8.63MB] 24.0MB 75352 | | | | []: java.util.HashMap$Node
[75.3K/ 1%/3.85MB] 5.77MB 75352 | | | | +-key: java.lang.String
[75.3K/ 1%/3.85MB] 3.97MB 75352 * | | | | | value: byte[]
[ 104K/ 2%/2.91MB] 8.13MB 39920 | | | | \-value: org.jetbrains.idea.maven.model.MavenArtifactInfo
[37.4K/ 0%/ 1.2MB] 2.16MB 37483 | | | | myArtifactId: java.lang.String
[37.4K/ 0%/ 1.2MB] 1.26MB 37483 * | | | | value: byte[]
[83.4K/ 1%/4.87MB] 11.4MB 96 | | | \-dependencies: java.util.ArrayList
[83.4K/ 1%/4.87MB] 11.4MB 96 | | | elementData: java.lang.Object[]
[83.4K/ 1%/4.87MB] 11.2MB 21445 | | | []: org.jetbrains.idea.maven.model.MavenArtifact
[42.2K/ 0%/3.38MB] 6.6MB 21434 | | | myFile: java.io.File
[21.3K/ 0%/2.18MB] 2.72MB 21384 | | | path: java.lang.String
[21.3K/ 0%/2.18MB] 2.21MB 21384 * | | | value: byte[]
[85.3K/ 1%/3.58MB] 12.1MB 12 | | +-myVirtualFileToProjectMapping: java.util.HashMap
[85.3K/ 1%/3.58MB] 12.1MB 12 | | | table: java.util.HashMap$Node[]
[85.3K/ 1%/3.58MB] 12.1MB 19 | | | []: java.util.HashMap$Node
[85.3K/ 1%/3.58MB] 12.1MB 19 | | | value: org.jetbrains.idea.maven.project.MavenProject
[85.3K/ 1%/3.58MB] 11.7MB 19 | | | myState: org.jetbrains.idea.maven.project.MavenProjectState
[46.6K/ 1%/1.76MB] 5.18MB 19 | | | managedDependencies: java.util.HashMap
[46.6K/ 1%/1.76MB] 5.18MB 19 | | | table: java.util.HashMap$Node[]
[46.6K/ 1%/1.76MB] 4.87MB 14986 | | | []: java.util.HashMap$Node
[14.9K/ 0%/ 766KB] 1.14MB 14986 | | | key: java.lang.String
[14.9K/ 0%/ 766KB] 789KB 14986 * | | | value: byte[]
[61.7K/ 1%/2.18MB] 5.84MB 14 | | \-myRootProjects: java.util.ArrayList
[61.7K/ 1%/2.18MB] 5.84MB 14 | | elementData: java.lang.Object[]
[61.7K/ 1%/2.18MB] 5.83MB 14 | | []: org.jetbrains.idea.maven.project.MavenProject
[61.7K/ 1%/2.18MB] 5.83MB 14 | | myState: org.jetbrains.idea.maven.project.MavenProjectState
[51.6K/ 1%/1.79MB] 4.74MB 14 | | managedDependencies: java.util.HashMap
[51.6K/ 1%/1.79MB] 4.74MB 14 | | table: java.util.HashMap$Node[]
[51.6K/ 1%/1.79MB] 4.51MB 10984 | | []: java.util.HashMap$Node
[29.8K/ 0%/ 843KB] 2.31MB 10984 | | value: org.jetbrains.idea.maven.model.MavenArtifactInfo
[10.9K/ 0%/ 353KB] 634KB 10984 | | myArtifactId: java.lang.String
[10.9K/ 0%/ 353KB] 370KB 10984 * | | value: byte[]
[ 425K/ 9%/22.9MB] 306MB 19 | +-value: com.intellij.util.keyFMap.MapBackedFMap
[ 425K/ 9%/22.9MB] 306MB 19 | | value: java.lang.Object[]
[ 270K/ 6%/13.6MB] 179MB 18 | | +-[]: com.intellij.psi.impl.PsiCachedValueImpl$Soft
[ 270K/ 6%/13.6MB] 179MB 18 ! | | | myManager: com.intellij.psi.impl.PsiManagerImpl (disposed)
[ 270K/ 6%/13.6MB] 171MB 18 | | | myModificationTracker: com.intellij.psi.impl.PsiModificationTrackerImpl
[ 270K/ 6%/13.6MB] 171MB 18 | | | myPublisher: jdk.proxy2.$Proxy104
[ 270K/ 6%/13.6MB] 171MB 18 | | | h: com.intellij.util.messages.impl.ToParentMessagePublisher
[ 270K/ 6%/13.6MB] 171MB 18 ! | | | bus: com.intellij.util.messages.impl.MessageBusImpl (disposed)
[ 245K/ 5%/12.5MB] 150MB 18 | | | subscriberCache: java.util.concurrent.ConcurrentHashMap
[ 245K/ 5%/12.5MB] 150MB 18 | | | table: java.util.concurrent.ConcurrentHashMap$Node[]
[ 245K/ 5%/12.5MB] 150MB 92 | | | []: java.util.concurrent.ConcurrentHashMap$Node
[ 187K/ 4%/9.88MB] 125MB 83 | | | +-val: java.lang.Object[]
[67.0K/ 1%/3.44MB] 15.8MB 9 | | | | +-[]: org.jetbrains.idea.maven.navigator.MavenProjectsNavigator$1
[67.0K/ 1%/3.44MB] 15.8MB 9 ! | | | | | this$0: org.jetbrains.idea.maven.navigator.MavenProjectsNavigator (disposed)
[66.9K/ 1%/3.44MB] 14.8MB 9 | | | | | myStructure: org.jetbrains.idea.maven.navigator.structure.MavenProjectsStructure
[50.4K/ 1%/2.72MB] 11.8MB 9 | | | | | myProjectToNodeMapping: java.util.HashMap
[50.4K/ 1%/2.72MB] 11.8MB 9 | | | | | table: java.util.HashMap$Node[]
[50.4K/ 1%/2.72MB] 11.8MB 61 | | | | | []: java.util.HashMap$Node
[21.7K/ 0%/1.17MB] 4.38MB 11 | | | | | key: org.jetbrains.idea.maven.project.MavenProject
[21.7K/ 0%/1.17MB] 4.28MB 11 | | | | | myState: org.jetbrains.idea.maven.project.MavenProjectState
[11.9K/ 0%/ 584KB] 2.16MB 11 | | | | | managedDependencies: java.util.HashMap
[11.9K/ 0%/ 584KB] 2.16MB 11 | | | | | table: java.util.HashMap$Node[]
[11.9K/ 0%/ 584KB] 1.98MB 8582 | | | | | []: java.util.HashMap$Node
[8.58K/ 0%/ 439KB] 658KB 8582 | | | | | key: java.lang.String
[8.58K/ 0%/ 439KB] 452KB 8582 * | | | | | value: byte[]
[60.3K/ 1%/2.83MB] 13.0MB 9 | | | | \-[]: com.intellij.psi.impl.file.impl.ResolveScopeManagerImpl$1
[60.3K/ 1%/2.83MB] 13.0MB 9 ! | | | | this$0: com.intellij.psi.impl.file.impl.ResolveScopeManagerImpl (disposed)
[60.3K/ 1%/2.83MB] 12.9MB 9 ! | | | | myProjectRootManager: com.intellij.workspaceModel.ide.impl.legacyBridge.project.ProjectRootManagerBridge (disposed)
[51.4K/ 1%/ 1.9MB] 10.3MB 9 | | | | projectJdkEventDispatcher: com.intellij.util.EventDispatcher
[51.4K/ 1%/ 1.9MB] 10.3MB 9 | | | | myListeners: com.intellij.util.containers.DisposableWrapperList
[51.4K/ 1%/ 1.9MB] 10.3MB 9 | | | | myWrappedList: com.intellij.util.containers.LockFreeCopyOnWriteArrayList
[51.4K/ 1%/ 1.9MB] 10.3MB 9 | | | | array: java.lang.Object[]
[51.4K/ 1%/ 1.9MB] 10.2MB 11 | | | | []: com.intellij.util.containers.DisposableWrapperList$DisposableWrapper
[50.1K/ 1%/1.82MB] 5.6MB 2 | | | | delegate: org.jetbrains.idea.maven.navigator.MavenProjectsNavigator$$Lambda+0x0000000022e7c4a8
[50.1K/ 1%/1.82MB] 5.6MB 2 ! | | | | arg$1: org.jetbrains.idea.maven.navigator.MavenProjectsNavigator (disposed)
[50.1K/ 1%/1.82MB] 5.59MB 2 | | | | myTree: org.jetbrains.idea.maven.navigator.MavenProjectsNavigator$initTree$1
[50.1K/ 1%/1.82MB] 5.49MB 1 ! | | | | $mavenProjectManager: org.jetbrains.idea.maven.project.MavenProjectsManagerEx (disposed)
[50.1K/ 1%/1.82MB] 5.49MB 1 | | | | myProjectsTreeRef: java.util.concurrent.atomic.AtomicReference
[50.1K/ 1%/1.82MB] 5.49MB 1 | | | | value: org.jetbrains.idea.maven.project.MavenProjectsTree
[39.8K/ 0%/1.44MB] 4.4MB 1 | | | | myMavenIdToProjectMapping: java.util.HashMap
[39.8K/ 0%/1.44MB] 4.4MB 1 | | | | table: java.util.HashMap$Node[]
[39.8K/ 0%/1.44MB] 4.4MB 7 | | | | []: java.util.HashMap$Node
[39.7K/ 0%/1.44MB] 4.39MB 7 | | | | value: org.jetbrains.idea.maven.project.MavenProject
[39.7K/ 0%/1.44MB] 4.39MB 7 | | | | myState: org.jetbrains.idea.maven.project.MavenProjectState
[25.7K/ 0%/ 897KB] 2.37MB 7 | | | | managedDependencies: java.util.HashMap
[25.7K/ 0%/ 897KB] 2.37MB 7 | | | | table: java.util.HashMap$Node[]
[...removed 127 lines...]
[6.42K/ 0%/ 195KB] 5.76MB 11 left: com.intellij.openapi.editor.impl.RangeHighlighterTree$RHNode
[5.77K/ 0%/ 171KB] 4.89MB 9 intervals: com.intellij.util.SmartList
[4.41K/ 0%/ 130KB] 3.62MB 8 myElem: com.intellij.openapi.editor.impl.RangeHighlighterImpl
[ 4.4K/ 0%/ 130KB] 3.61MB 7 myGutterIconRenderer: com.intellij.codeInsight.daemon.MergeableLineMarkerInfo$MyLineMarkerInfo$1
[ 4.4K/ 0%/ 130KB] 3.61MB 7 this$0: com.intellij.codeInsight.daemon.MergeableLineMarkerInfo$MyLineMarkerInfo
[4.39K/ 0%/ 130KB] 3.6MB 7 myMarkers: com.intellij.util.SmartList
[4.39K/ 0%/ 130KB] 3.6MB 7 myElem: java.lang.Object[]
[4.38K/ 0%/ 129KB] 3.59MB 7 []: com.intellij.spring.diagrams.contexts.gutter.ModelDependenciesLineMarkerProviderBase$1
[4.38K/ 0%/ 129KB] 3.59MB 7 val$element: com.intellij.psi.impl.source.tree.java.PsiIdentifierImpl
[4.35K/ 0%/ 129KB] 3.56MB 7 myParent: com.intellij.psi.impl.source.tree.java.ClassElement
[2.43K/ 0%/70.8KB] 1.59MB 7 myParent: com.intellij.psi.impl.source.tree.java.JavaFileElement
[1.47K/ 0%/47.0KB] 1.46MB 7 myStubbedSpine: com.intellij.psi.impl.source.tree.AstSpine
[1.47K/ 0%/47.0KB] 1.46MB 7 myNodes: java.util.ArrayList
[1.47K/ 0%/47.0KB] 1.46MB 7 elementData: java.lang.Object[]
[ 549/ 0%/20.3KB] 233KB 85 []: com.intellij.psi.impl.source.tree.java.ImportStatementElement
[ 549/ 0%/20.3KB] 207KB 85 lastChild: com.intellij.psi.impl.source.tree.java.PsiJavaTokenImpl
[ 549/ 0%/20.3KB] 202KB 85 myPrevSibling: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 464/ 0%/14.8KB] 173KB 85 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 390/ 0%/11.2KB] 142KB 85 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 308/ 0%/7.98KB] 110KB 80 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 228/ 0%/5.26KB] 81.3KB 70 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 158/ 0%/3.24KB] 55.9KB 65 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 93/ 0%/1.68KB] 32.6KB 61 firstChild: com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl
[ 61/ 0%/1.12KB] 2.66KB 61 myCachedNormalizedText: java.lang.String
[ 61/ 0%/1.12KB] 1.2KB 61 * value: byte[]
描述bug内容
未在IDEA中开启DebugTools进行调试,但是DebugTools仍会占用过高的内存
版本信息
IDEA的内存分析报告关于DebugTools的内存占用如下方代码块所示