Skip to content

未在IDEA中开启DebugTools进行调试,但是DebugTools仍会占用过高的内存 #266

@baoyonghua

Description

@baoyonghua

描述bug内容
未在IDEA中开启DebugTools进行调试,但是DebugTools仍会占用过高的内存

版本信息

  • DebugTools版本: 4.6.0

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[]

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions