代码之家  ›  专栏  ›  技术社区  ›  Daniel

如何分析永久素的含量?

  •  25
  • Daniel  · 技术社区  · 16 年前

    这有可能吗?

    4 回复  |  直到 16 年前
        1
  •  26
  •   Nicolas    13 年前

    PermGen通常由字符串文本池和加载的类组成。为了回答您的部分问题,即string literal池,我编写了一个实用程序来打印正在运行的JVM的string literal池。可在以下位置获取:

    https://github.com/puneetlakhina/javautils/blob/master/src/com/blogspot/sahyog/PrintStringTable.java

    PermStat ,它是jmap工具用于打印permgen统计信息的类。

        2
  •  18
  •   bluish dmajkic    15 年前

    您可以使用以下标志:

    -XX:+TraceClassLoading -XX:+TraceClassUnloading
    

    -XX:+PrintGCDetails 您还可以跟踪永久发电机的大小。

    注意,我不确定除了Sun之外的jvm是否支持这些标志。

    PermGen内存不足错误的另一个疑点是 string interning . 检查代码中插入字符串的位置。

        3
  •  4
  •   mtpettyp    16 年前

    jconsole . 单击classes选项卡,然后单击Verbose Output。它将打印加载到的每个类 stdout

    您可能需要使用 -Dcom.sun.management.jmxremote J控制台 附在上面。

        4
  •  4
  •   Dilum Ranatunga    16 年前

    威尔 jmap -permgen

    请参阅Java故障排除指南 http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/memleaks.html#gbyuu