`

java vm heap的问题

    博客分类:
  • java
 
阅读更多

 

java.lang.OutOfMemoryError: PermGen space

实际上是class加载后,一直没有被释放,挺烦的:)

改一些jvm参数就ok了

所以修改了ant

set ANT_OPTS=-Xms128m -Xmx512m -XX:MaxPermSize=300m

这里再介绍一下JVM发生OOM的几种情况:

1、java.lang.OutOfMemoryError: Java heap space

这是我们平常理解的OOM,是由于heap space确实没有空间分配,这种一般是由于内存泄漏导致,也有可能是heap space设置太小。需要具体分析

2、java.lang.OutOfMemoryError: PermGen space

jvm 规范里面有定义一个method space,这里主要放classes和method list和一个string pool,string有一个intern方法,通过这个方法定义的string都放在这里(好像不常用),这里设置不太小会导致OOM,缺省64M,主 要由于现在应用依赖的第三方类越来越多,导致这类问题频繁发生,需要引起重视

3、Requested array size exceeds VM limit
这种是由于申请的array size超出了heap space大小,比如在一个256M的heap space中申请一个512M的array,这种基本都是应用bug导致

4、request <size> bytes for <reason>. Out of swap space?
这种是由于heap size设置相对于系统物理内存太大,导致系统swap space不足,这种的解决办法就是减小heap size大小

5、<reason> <stack trace> (Native method)
这种估计是最麻烦的了,也是最少碰到的,是由于jni或native method导致,如果自己没有写这类的东西,基本可以说是jdk问题

分享到:
评论

相关推荐

    Java VM Heap 堆分析(节选)

    ### Java VM Heap 堆分析知识点详解 #### JVM内的内存管理 Java虚拟机(JVM)在执行Java程序的过程中,会负责内存的分配与回收。内存管理主要包括对象的创建、存储以及垃圾回收等过程。 - **Root Set 和对象的...

    解决Java_heap_space问题

    ### 解决Java_heap_space问题:深入理解与策略 在Java应用程序开发与运行过程中,经常会遇到一个常见的内存管理问题——“Java heap space”。这个问题通常表现为Java虚拟机(JVM)在执行过程中因可用堆内存不足而...

    关于(java heap space)内存溢出的解决办法

    在Java编程中,"java heap space"内存溢出是一个常见的问题,它通常发生在应用程序尝试分配超过JVM堆内存限制的对象时。这个问题对于任何Java开发者来说都至关重要,因为如果不妥善处理,可能会导致程序崩溃。以下是...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    通过以上方法,通常可以有效解决Myeclipse下出现的`java.lang.OutOfMemoryError: Java heap space`问题。需要注意的是,在调整JVM参数时应当根据实际情况合理设置,以免造成资源浪费或者性能下降。同时也要持续关注...

    java heap space解决方法

    ### Java Heap Space 解决方法详解 #### 一、引言 在Java应用程序运行过程中,经常会遇到“Out of Memory Error: Java Heap Space”的错误提示。这种错误通常发生在Java虚拟机(JVM)的堆内存不足时,导致程序无法...

    编译时出现java.lang.OutOfMemoryError Java heap space异常

    ### 编译时出现java.lang.OutOfMemoryError Java heap space异常 #### 一、问题概述 在进行Java项目编译的过程中,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这种异常。这类异常通常表明Java虚拟机...

    JavaVM运作原理

    - **Java堆(Java Heap)**:存放对象实例和数组。 - **本地方法栈(Native Method Stack)**:支持本地方法调用。 3. **自动内存管理器(Automatic Memory Manager)**:实现垃圾回收机制。 4. **执行引擎(Execution ...

    解决Java-heap-space问题.doc

    Java程序在运行过程中可能会遇到内存不足的问题,表现为`java.lang.OutOfMemoryError: Java heap space`,这通常意味着Java虚拟机(JVM)的堆内存已耗尽,无法分配更多的空间给应用程序使用。堆内存是Java程序中用来...

    ibm-java-堆内存分析工具-heapanalyzer

    IBM Java堆内存分析工具——HeapAnalyzer,是一款专为IBM J9 VM设计的强大内存分析工具,它可以帮助开发者深入理解Java应用程序的内存使用情况,检测并解决内存泄漏问题,从而提升应用性能。本文将详细介绍Heap...

    优化Java堆大小的5个技巧

    - **综合考虑多方面因素**:不仅要关注Java Heap的大小调整,还要考虑到Native Heap和PermGen/Metaspace的需求。 #### 二、数据和应用程序为王:回顾静态占用需求 ##### **2.1 应用程序与数据的影响** 应用程序的...

    OutOfMemoryError_8种典型案例分享

    当堆内存不足以容纳新对象时,就会抛出java.lang.OutOfMemoryError: Java heap space错误。常见的解决方法是增加-Xmx参数值以扩大堆内存的大小。除此之外,还可能是由于代码问题导致内存消耗过大,例如内存泄漏或是...

    Java 高性能系统常见设计与优化

    高性能系统的设计和优化需要考虑多方面的因素,如系统的架构、Java VM 的优化、数据库设计和优化、数据库访问等。只有通过系统的设计和优化,才能提高系统的性能和可靠性。 知识点: 1. 高性能系统的典型体系结构...

    Dalvik虚拟机内存管理

    这个值可以通过命令行参数`-Xmx`或配置项`dalvik.vm.heapsize`来指定。例如,在一些定制版系统中,如MIUI,这个值可能会被设置为64MB,而默认情况下,该值通常是32MB。 ##### 3. 堆内存位图 为了更有效地管理堆...

    java核心知识点整理.pdf

    * 堆(Heap):存储Java对象实例,包括实例变量和实例方法。 * 方法区(Method Area):存储类的元数据,包括类的信息、字段、方法等。 Java垃圾回收机制 Java垃圾回收机制是Java语言的一种自动内存管理机制,负责...

    Eclipse中通过Tomcat运行J2EE项目java.lang.OutOfMemoryError PermGen space的解决方案

    正确的解决方法是,在 Eclipse 中点击“Run” – “Run Configurations…”,选中 Tomcat Server,进入 Arguments 分页,在 VM arguments 中加入提升初始分配空间的参数。例如,可以添加以下参数: -Xms256m -Xmx...

    java虚拟机JVM详解ppt

    ### Java虚拟机(JVM)详解 #### 一、引言 Java虚拟机(JVM)作为Java编程语言的核心组件之一,其重要性不言而喻...掌握JVM的工作原理有助于开发者编写更高效、更稳定的Java应用程序,并能有效地解决常见的内存溢出问题。

    Java性能监控工具

    Java性能监控是优化Java应用程序的关键环节,它可以帮助开发者识别并解决性能瓶颈,确保程序的高效稳定运行。...通过对这些工具的熟练运用,开发者能够快速识别和解决性能问题,提升Java应用的性能和稳定性。

Global site tag (gtag.js) - Google Analytics