问题总结 内存空间溢出
永久代溢出
- JDK版本:1.7 以前
- 异常信息
java.lang.OutOfMemoryError: PermGen space
- 永久代,又称持久代
- 简介:PermGen space(Permanent Generation space) 内存的永久保存区域
- 内容:
- 主要用于存储加载/缓存到内存中的 class 定义
- 包括 class 的 名称(name),字段(fields),方法(methods)和字节码(method bytecode);
- 以及常量池(constant pool information);对象数组(object arrays)/类型数组(type arrays)所关联的 class,还有 JIT 编译器优化后的 class 信息等
- 溢出场景1
- PermGen 的使用量和 JVM 加载到内存中的 class 数量/大小有关。主要原因,就是加载到内存中的 class 数量太多或体积太大造成的
- 大量的JSP页面
- PermGen 的使用量和 JVM 加载到内存中的 class 数量/大小有关。主要原因,就是加载到内存中的 class 数量太多或体积太大造成的
解决方案2
- 手动设置MaxPermSize大小
- 重启Tomcat