【问题标题】:Cannot understand Intellij IDEA's memory usage and management无法理解 Intellij IDEA 的内存使用和管理
【发布时间】:2012-03-08 21:21:10
【问题描述】:

几年后,我再次与 IDEA 一起开发,到目前为止我很高兴。 问题只是奇怪的内存使用行为和 GC 操作,而我正在处理导致我的 IDE 在 GC 工作时冻结几秒钟的项目。 无论项目有多大,我都在努力,几天后内存使用量增加到 500 MB(我的堆空间最大 512 MB,实际上,我认为它必须足以用于具有 ca 100 java文件)。在 GC 完成工作后,我使用了 400 MB - 未收集 - 堆上只有大约 100 MB 可用空间,几分钟后内存使用量增加,堆又满了。

JVM version is 19.0-b09

using thread-local object allocation.
Parallel GC with 2 thread(s)

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 536870912 (512.0MB)
   NewSize          = 178257920 (170.0MB)
   MaxNewSize       = 178257920 (170.0MB)
   OldSize          = 4194304 (4.0MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 16777216 (16.0MB)
   MaxPermSize      = 314572800 (300.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 145489920 (138.75MB)
   used     = 81242600 (77.4789810180664MB)
   free     = 64247320 (61.271018981933594MB)
   55.84070704004786% used
From Space:
   capacity = 16384000 (15.625MB)
   used     = 0 (0.0MB)
   free     = 16384000 (15.625MB)
   0.0% used
To Space:
   capacity = 16384000 (15.625MB)
   used     = 0 (0.0MB)
   free     = 16384000 (15.625MB)
   0.0% used
PS Old Generation
   capacity = 358612992 (342.0MB)
   used     = 358612992 (342.0MB)
   free     = 0 (0.0MB)
   100.0% used
PS Perm Generation
   capacity = 172621824 (164.625MB)
   used     = 172385280 (164.3994140625MB)
   free     = 236544 (0.2255859375MB)
   99.86296981776765% used

这就是我的堆空间的样子。值得注意的是,老一代和烫发一代使用了大约 100% 的空间。但是我已经手动触发了几次GC。问题是如何在不启动 IDE 的情况下让 IDE 在老一代中扫描这些对象? (启动后内存使用量约为 60MB -90 MB)我怎样才能知道这些是什么?在 VisualVM 中可以看到一些正在运行的线程,例如 RMI TCP Connection、RMI TCP Accept、XML RPC Weblistener 等,尽管我在 IDE 上什么也没做,它们仍然在消耗内存,甚至每秒 5-10 MB。

$ uname -a
Linux bagdemir 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 21:21:01 UTC 2011 i686 GNU/Linux

$ java --version 
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)

更新: 内存配置: -Xms256m -Xmx512m -Xmn170m -XX:MaxPermSize=300m

【问题讨论】:

    标签: java jvm intellij-idea profiling memory-management


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      正确的方法是获取memory snapshot 并将相应的票证提交给附带快照的 JetBrains 跟踪器。

      【讨论】:

        【解决方案3】:

        内存使用过多的情况一直持续到 2019 年 4 月 2 日。默认情况下,IntelliJ IDEA 终极版默认启用了 131 个插件。

        我关闭了大约 50 个插件。

        进入文件>>设置>>插件来管理插件。然后点击Installed查看已经激活的插件。

        【讨论】:

          猜你喜欢
          • 2018-05-31
          • 2018-03-27
          • 2017-01-18
          • 2013-06-10
          • 1970-01-01
          • 2015-08-21
          • 1970-01-01
          • 2016-09-27
          • 1970-01-01
          相关资源
          最近更新 更多