`

Java内存溢出问题学习...

    博客分类:
  • Java
阅读更多
今天碰到的问题,查阅网上资料,得知:
    WebSphere Application Server出现内存溢出的错误...
    java.lang.OutOfMemoryError:内存溢出
Eclipse平台的eclipse.ini文件中的参数:
-vmargs:说明后面是VM的参数
-Xms128m:虚拟机占用系统的最小内存
-Xmx512m:虚拟机占用系统的最大内存
-XX:PermSize:最小堆大小
-XX:MaxPermSize:最大堆大小
当出现内存不足时,一般来说都是PermSize,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置
---关于PermGen space(Permanent Generation space)是指内存的永久保存区域...
是JVM用来存放Class和Meta信息的内存区域,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
---关于存放类实例的Heap区域,Java运行程序运行过程中JVM自动的调配使用的内存空间大小.JVM在启动时会自动的Heap大小,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.Heap size 的大小是Young Generation 和Tenured Generaion 之和.
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
分享到:
评论

相关推荐

    【Java面试题】Java内存溢出

    【Java面试题】Java内存溢出

    JRockit JAVA内存溢出检测的使用(CHM)

    Java内存溢出是开发和运行Java应用程序时常见的问题,可能导致程序崩溃或性能急剧下降。JRockit JVM(Java Virtual Machine)由Oracle公司开发,它提供了强大的内存管理和分析工具,尤其是对于内存溢出的检测和诊断...

    apache服务器出现内存溢出的解决方法.doc

    本文主要探讨了Apache服务器在运行过程中遇到内存溢出问题的几种常见情况及其解决办法。虽然标题提及的是Apache服务器,但文中实际讨论的是与Apache服务器类似的Java应用服务器Tomcat的内存管理问题。文章深入分析了...

    解决Java程序内存溢出的办法

    在Java编程中,内存溢出(Out of Memory Error,简称OOM)是一个常见的问题,它发生在程序请求的内存超过了系统能够分配的最大额度。这种情况通常会导致程序崩溃,因此理解如何解决Java程序的内存溢出至关重要。以下...

    应用源码之防止内存溢出浅析.zip

    1. **Java内存模型**:Java内存分为堆内存和栈内存,对象分配在堆中,局部变量存储在栈上。Android应用基于Dalvik/ART虚拟机,其内存管理机制与标准Java有所不同。 2. **Android内存结构**:Android系统有Dalvik堆...

    Android防止内存溢出浅析.zip

    在Android应用开发中,内存溢出(Out Of Memory,简称OOM)是一个常见的问题,它会导致应用崩溃,严重影响用户体验。理解并防止Android应用中的内存溢出是优化应用性能的关键环节。以下是对Android防止内存溢出的...

    【深入Java虚拟机】Java内存模型探讨一.pdf

    理解Java内存模型对于开发者来说是必要的,因为这有助于识别和解决内存泄漏、栈溢出、线程安全问题等。例如,了解对象的生命周期和内存分配可以帮助优化内存使用,减少垃圾收集的压力;理解栈的工作原理有助于调试...

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

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

    缓冲区溢出教程...

    学习这个教程,你将能够了解如何检测和修复潜在的溢出问题,提升软件的安全性。 在压缩包中的“缓冲区溢出”文件,可能包含了详细的理论讲解、实战案例分析、漏洞利用代码示例以及防止溢出的编程技巧。通过学习这个...

    介绍堆栈,线程 如何解决内存溢出

    本文将深入探讨这两个主题以及如何解决内存溢出问题,以帮助你在笔试和面试中表现出色。 首先,我们来理解堆栈。堆栈是一种特殊的内存区域,遵循“后进先出”(LIFO)原则,主要用于存储程序运行过程中的函数调用...

    Thumbnails图片处理压缩/裁剪java代码纯净示例+注释详细

    在Java开发中,图片处理是一项常见的任务,包括压缩、裁剪、...这是一个很好的学习和实践`Thumbnails`库的起点,通过这个例子,你可以了解如何将`Thumbnails`库集成到自己的Java项目中,进行高效便捷的图片处理工作。

    深入理解Java 虚拟机内存模型.rar

    Java虚拟机(JVM)内存模型是Java...总的来说,深入理解Java虚拟机内存模型有助于我们更好地设计和优化Java应用程序,避免因内存问题导致的性能瓶颈或系统崩溃。通过学习和实践,我们可以编写出更高效、更稳定的代码。

    Java内存溢出及分析

    Java内存溢出问题,是Java开发中常见的性能问题之一,主要由于程序运行过程中对内存的不合理使用导致。Java与C/C++不同,它的垃圾回收机制虽然可以自动清理不再使用的对象,但并不意味着开发者无需关心内存的使用。...

    Java内存机制学习和使用

    ### Java内存机制学习和使用 #### 一、Java内存机制概览 Java内存管理是Java开发人员必须掌握的核心概念之一。良好的内存管理不仅能够提升应用性能,还能避免常见的内存泄漏问题。本文旨在深入探讨Java内存机制,...

    Android应用源码之防止内存溢出浅析.zip

    在Android应用开发中,内存管理是一项至关重要的任务,因为不当的内存使用可能导致应用程序崩溃或性能下降,最常见的问题就是内存溢出(Out Of Memory,简称OOM)。本资源"Android应用源码之防止内存溢出浅析"着重...

    JVM原理及内存溢出案列分析PPT教案学习.pptx

    * 垃圾回收机制是为了保证java内存不会溢出,java中有垃圾回收机制。System.gc()即垃圾收集机制是指JVM用于释放那些不再使用的对象所占用的内存。 * java语言并不要求JVM有GC,也没有规定GC如何工作。垃圾收集的目的...

    java内存管理精彩概述

    Java内存管理是Java核心技术的重要组成部分,对于每个开发者来说,理解其工作原理都是十分必要的。这一主题既实用又有趣。以下是对Java内存管理的精彩概述,主要基于Sun Hotspot JVM,但请注意,不同JVM可能有不同的...

    java开发常遇问题和解决

    1. **内存溢出(Out of Memory)** - 原因:分配给JVM的内存不足,对象创建过多,或者大量数据驻留在堆内存中。 - 解决方案:检查代码中是否有无用的大对象,使用内存分析工具如VisualVM或MAT来定位问题,调整JVM...

Global site tag (gtag.js) - Google Analytics