VM 的Permanent generation space,实际上就是方法区,存储了下面两种类型的数据:
1.Class的节本信息
Package Name
Super class package name
Class or interface
Type modifiers
Super inferface package name
2.其它信息
The constant pool for the type
Field information
Method information
All class (static) variables declared
in the type, except constants
A reference to class ClassLoader
A reference to class Class
本来SUN设计的时候认为这个区域在JVM启动的时候就固定了,但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制,现在的问题是动态加载类到这个区域后,gc根本没办法回收!
现在开发中最常见的错误莫过于Permgen Space!
解决办法:
1,把不必要的 jar 文件清理出 lib;
2,不要频繁地进行 reload;
3,增加 PermGen Space 内存区域,默认是 64MB,可以采用 -XX:MaxPermSize 这个 JVM 参数改这块区域改大一些,这个参数详见:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
如果用的是 Tomcat 的话,可以在 catalina.bat 开始处增加一行 set JAVA_OPTS=-XX:MaxPermSize=128m
分享到:
相关推荐
堆被分为新生代(Young Generation)、老年代(Tenured Generation)和永久代(Permanent Generation,Java 8后改为元空间MetaSpace)。新生代又分为Eden区、From Survivor和To Survivor区,用于垃圾收集和对象生命...
在Java程序中,`java.lang.OutOfMemoryError: Java heap space` 是一个常见的错误,意味着程序在运行过程中耗尽了JVM分配的堆内存。这个错误通常发生在创建大量对象或者单个对象占用过多内存时。 一、问题描述与...
PermGen(Permanent Generation)是Java虚拟机(JVM)的一个内存区域,主要用于存储类的元数据,如类的名称、方法信息等。与堆区不同,堆区中的对象在不再被引用时会被垃圾收集器(Garbage Collector, GC)回收,但...
在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...
Java堆内存分为新生代(Young Generation)、老年代(Old Generation)和永久代(Permanent Generation,在Java 8之后被元空间(Metaspace)取代)。新生代主要存放新创建的对象,老年代则保存经过多次垃圾回收仍...
PermGen space 是 Permanent Generation space 的缩写,表示内存的永久保存区域。这个区域用于存放 Class 和 Meta 信息。Class 在被 Load 时就会被放入 PermGen space 区域,它和存放 Instance 的 Heap 区域不同。...
JVM管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域)、Heap space(堆区域)和Java Stacks(Java栈)。其中,永久保存区域主要存放Class(类)和Meta的信息,Class第一次被...
这个错误的根本原因在于Java虚拟机(JVM)的永久代(Permanent Generation Space)内存空间不足。永久代主要存储类的元数据,包括类的名称、方法信息、字段信息等。当应用程序加载的类数量过多或者类的元数据占用...
PermGen空间,全称为Permanent Generation space,是Java虚拟机(JVM)内存管理的一部分,主要用来存储类和元数据信息。当Java类加载器加载类时,这些类的信息会被存储到PermGen空间中。这与存放类实例的堆区(Heap...
1. PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的。 2. Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap...
永磁同步电机(Permanent Magnet Synchronous Motor,简称PMSM)是一种高效、高功率密度的电机类型,广泛应用于工业驱动、电动汽车等领域。空间矢量脉宽调制(Space Vector Pulse Width Modulation,简称SVPWM)是...
1.8.0_45版本的JVM优化了垃圾回收机制,提升了性能,并引入了新的内存区域,如元空间(Metaspace),以替代以前的永久代(Permanent Generation)。 3. **Java运行时环境(JRE)**:包含JVM以及运行Java应用程序所...
for hrush less permanent-niaghei motors ever It is dcnigncd to sent the modern computer based generation of mo;or engineers, '['he book. uoe» hand-in-hand with modern software-based tedwiquer- for ...
Java虚拟机(JVM)管理着多种不同类型的内存区域,包括堆内存(Heap Memory)、方法区(Method Area)、永久代(Permanent Generation Space)等。不同的内存区域有着不同的作用和特点: 1. **堆内存**:这是应用程序中对象...
1. **Java Heap Space**:当堆内存空间不足时,抛出`OutOfMemoryError: Java heap space`。 2. **PermGen Space**:当方法区(永久代)空间不足时,抛出`OutOfMemoryError: PermGen space`。在JDK 8中,由于永久代被...
* Permanent Generation(non-heap):包含虚拟机器自身的所有反射资料。 在Details区域中,可以看到当前内存度量的信息,包括: * Time:目前的时间。 * Used:目前使用的内存总量。 * Committed:JVM可使用的...
Books on permanent magnet (PM) ac machine drives have focused primarily on the design of the machines and have covered the control and converters for these drives only in an elementary manner. In ...
在Java中,堆内存分为新生代(Young Generation)、老年代(Tenured Generation)和永久代(Permanent Generation,Java 8后被元空间取代)。堆内存的大小可以通过JVM参数调整,它主要用于对象的创建和垃圾收集。...
在Java虚拟机(JVM)中,PermGen Space,全称Permanent Generation Space,是用于存储类的元数据、常量池、字符串常量等非实例对象数据的一个内存区域。与普通对象的堆空间不同,PermGen Space主要负责存储类的结构...