Java 中的 永久空间 是什么?我们的团队遇到了 永久空间 增加的问题。这种增加最终会影响性能。

我想知道 PermGen-space 是什么以及我们如何优化它的空间使用?

最佳答案

来自 http://java.sun.com/docs/hotspot/gc1.4.2/faq.html(问题 7--10)

  • 永久代应该如何大小?

    永久代用于保存 VM 本身的反射(reflect),例如类对象和方法对象。这些反射对象直接分配到永久代中,并且它的大小独立于其他代。通常,可以忽略这一代的大小,因为默认大小就足够了。但是,加载许多类的程序可能需要更大的永久代。
  • 如何判断永久代是否已满?

    从 1.4.2 开始 -XX:+PrintGCDetails 将打印有关在每次垃圾收集时收集的堆的所有部分的信息。一个完整的集合

    [Full GC [Tenured: 30437K->33739K(280576K), 0.7050569 secs] 106231K->33739K(362112K), [Perm : 2919K->23739K(280576K), 0.7050569 secs], 23739K(362112K), [Perm : 2919K->23739K(280576K), 7s, 16s]

    这个例子表明永久代收集很少(从收集前使用的2919K到收集后使用的2919K),永久代的当前大小为16384K。
  • 如何增加永久代的大小?

    使用命令行选项 -XX:MaxPermSize=
  • 我如何知道正在加载或卸载哪些类?

    使用命令行选项 -XX:+TraceClassloading 和 -XX:+TraceClassUnloading
  • 关于java - Java中的永久代空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2092347/

    10-10 19:30