在Java的PermGen空间

什么是PermGen的在Java领域。 因为我们(我们的)团队得到了一些问题PernGen空间越来越增加了其性能会受到影响。 所以我想知道它是什么? 以及如何优化它的空间使用情况?

--------------解决方案-------------

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

  1. 应该如何持久代的尺寸?

    永久生成用于保持反射虚拟机本身的诸如类对象和方法的对象。 这些反射对象被直接分配到永久生成,它是从其他世代独立地大小。 一般情况下,这一代的大小可以忽略不计,因为默认大小是足够的。 但是,装载许多类程序可能需要更大的永久代。
  2. 我怎样才能知道,如果永久一代填补了?

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

    [全GC [终身:30437K-> 33739K(280576K),0.7050569秒] 106231K-> 33739K(362112K),[烫发:2919K-> 2919K(16384K),0.7052334秒]

    这个例子表明,很少有人收集在永久代(从2919K去使用之前收集到2919K采用的采集后)和持久代当前的大小是16384K。

  3. 我怎样才能增加持久代的尺寸是多少?

    使用命令行选项-XX:MaxPermSize =
  4. 我怎么知道哪些类被加​​载或卸载?

    使用命令行选项-XX:+ TraceClassloading和-XX:+ TraceClassUnloading

在JVM中,PermGen的主张已经被加载/创建的类。 这个信息是垃圾一样堆的其它部分收集的,但有粗糙的边缘,可以防止这种情况的发生。 只是增加PermGen的空间

Start your JVM with
-XX:MaxPermSize=Xm
where X is a number like 128, 256.

关于此错误的一个很好的链接

基本上,彼尔姆代指的,所有的加载类存储堆的空间。 它专门用来存储类定义。

除了Java类的基本领域有

* Methods of a class (including the bytecodes)
* Names of the classes (in the form of an object that points to a string also in the permanent generation)
* Constant pool information (data read from the class file, see chapter 4 of the JVM specification for all the details).
* Object arrays and type arrays associated with a class (eg, an object array containing references to methods).
* Internal objects created by the JVM (java/lang/Object or java/lang/exception for instance)
* Information used for optimization by the compilers (JITs)

看这里。

分类:java的 时间:2015-03-14 人气:0
本文关键词: java的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.505 (s). 10 q(s)