知识大全 探究两大Java内存溢出类型

Posted

篇首语:行为决定性格,性格决定命运。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 探究两大Java内存溢出类型相关的知识,希望对你有一定的参考价值。

探究两大Java内存溢出类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  你知道如何解决Java内存溢出问题吗 这里和大家分享一下 JVM管理两种类型的内存 堆和非堆 堆是给开发人员用的上面说的就是 是在JVM启动时创建 非堆是留给JVM自己用的 用来存放类的信息的

  Java内存溢出的详细解决方案

  一 Java内存溢出类型

   java lang OutOfMemoryError:PermGenspace

  JVM管理两种类型的Java内存 堆和非堆 堆是给开发人员用的上面说的就是 是在JVM启动时创建 非堆是留给JVM自己用的 用来存放类的信息的 它和堆不同 运行期内GC不会释放空间 如果webapp用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小 超出了也会导致这块内存的占用过多造成Java内存溢出 或者tomcat热部署时侯不会清理前面加载的环境 只会将context更改为新部署的 非堆存的内容就会越来越多

  PermGenspace的全称是PermanentGenerationspace 是指内存的永久保存区域 这块内存主要是被JVM存放Class和Meta信息的 Class在被Loader时就会被放到PermGenspace中 它和存放类实例(Instance)的Heap区域不同 GC(GarbageCollection)不会在主程序运行期对PermGenspace进行清理 所以如果你的应用中有很CLASS的话 就很可能出现PermGenspace错误 这种错误常见在web服务器对JSP进行prepile的时候 如果你的WEBAPP下都用了大量的第三方jar 其大小超过了jvm默认的大小( M)那么就会产生此错误信息了

  一个最佳的配置例子 (经过本人验证 自从用此配置之后 再未出现过tomcat死掉的情况)

   setJAVA_OPTS= Xms m

   Xmx m XX:PermSize= M

   XX:MaxNewSize= m

   XX:MaxPermSize= m

   java lang OutOfMemoryError:Javaheapspace

  再来看一下Java内存溢出的第二种情况 第一种情况是个补充 主要存在问题就是出现在这个情况中 其默认空间(即 Xms)是物理内存的 / 最大空间( Xmx)是物理内存的 / 如果内存剩余不到 % JVM就会增大堆到Xmx设置的值 内存剩余超过 % JVM就会减小堆到Xms设置的值 所以服务器的Xmx和Xms设置一般应该设置相同避免每次GC后都要调整虚拟机堆的大小 假设物理内存无限大 那么JVM内存的最大值跟操作系统有关 一般 位机是 g到 g之间 而 位的就不会有限制了

  注意 如果Xms超过了Xmx值 或者堆最大值和非堆最大值的总和超过了物理内存或者操作系统的最大限制都会引起服务器启动不起来

  垃圾回收GC的角色

  JVM调用GC的频度还是很高的 主要两种情况下进行垃圾回收

  当应用程序线程空闲 另一个是java内存堆不足时 会不断调用GC 若连续回收都解决不了内存堆不足的问题时 就会报outofmemory错误 因为这个异常根据系统运行环境决定 所以无法预期它何时出现 根据GC的机制 程序的运行会引起系统运行环境的变化 增加GC的触发机会

cha138/Article/program/Java/hx/201311/26019

相关参考

知识大全 Tomcat运行Java Web内存溢出总结

Tomcat运行JavaWeb内存溢出总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 java开发中常常遇到的内存溢出问题 OutOfMemory

java开发中常常遇到的内存溢出问题OutOfMemory  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Java常规类型占用内存大小

Java常规类型占用内存大小  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  byte(字节型) 

知识大全 Tomcat内存溢出的原因

Tomcat内存溢出的原因  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Tomcat内存溢出的

知识大全 内存溢出场景模拟

  JavaMethodStack栈溢出实验什么时候会让JavaMethodStack栈溢出啊?栈的基本特点就是FILO(FirstInLastOut)如果in的太多而out的太少就好overflow

知识大全 关于PHP内存溢出问题的解决方法

关于PHP内存溢出问题的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一.内存溢出解决

知识大全 巧解Tomcat中JVM内存溢出问题

巧解Tomcat中JVM内存溢出问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  你对Tomc

知识大全 Java堆栈溢出的机制与原理

Java堆栈溢出的机制与原理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java堆栈溢出的出

知识大全 Java线程通信源代码中的奥秘探究

Java线程通信源代码中的奥秘探究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java线程通

知识大全 Java内存结构与模型

Java内存结构与模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一java内存结构  He