`
AILIKES
  • 浏览: 179965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于内存溢出异常的查看以及解决办法

阅读更多
         内存溢出,又称为OOM(OutOfMemoryError),处理内存溢出,首先要查看是否是由于内存泄露(Memory Leak)造成的内存溢出(Memory  Overflow),可以使用内存影响分析工具(如 Eclipse Memory Analyzer)对dump出来的堆存储快照进行分析,来确认内存中的对象是否是必要的.
如果是内存泄露,可以进一步通过工具查看泄漏对象到DC Roots的引用链,找到泄漏对象是怎样与DC Roots相关联导致垃圾收集器无法自动回收他们的,就可以比较准确的定位出泄露代码的位置.
如果不是内存泄露,就是说内存中的所有对象都必须活着,就检查虚拟机的堆参数(-Xmx 与 -Xms),与机器物理内存对比看是否还可以调大,从代码上查看是否某些对象生命周期过长或持有状态时间过长的情况,尝试减少程序运行期的内存消耗.
分享到:
评论

相关推荐

    JAVA内存溢出问题总结

    内存溢出问题可以从容器和程序类两个方面进行排查,容器问题可以调整容器参数来解决。 从程序类方面来说,内存溢出的原因有很多,以下是常见的几种: 1、查询数据库的时候递归循环了,应尽量使用精简的关联 SQL ...

    Tomcat内存溢出三种情况及解决办法

    Tomcat内存溢出三种情况及解决办法,不同的异常采用不同的方式解决,不能盲目的增加内存就可以了。

    poi大量数据读取gc内存溢出解决方案

    poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取为cvs即可.此解决方案可支持千万数据的...

    MATLAB内存溢出及其解决方法.pdf

    MATLAB内存溢出及其解决方法.pdf

    Java常见内存溢出异常分析与解决

    本篇文章主要分析了JAVA程序内存溢出问题原因,较为详细的说明了java导致程序内存溢出的原因与解决方法,感兴趣的小伙伴们可以参考一下。

    Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结

    在什么情况下会出现OutOfMemonryException呢? 在我们试图新建一个对象时,而垃圾收集器又找不到...异常的; 另一种情况是,CLR需要内存时,而却系统却不能提供,也会抛出该异常. 但此时,我们的应用程序是不能捕获该错误的.

    Tomcat内存溢出的三种情况及解决办法分析

    Tomcat内存溢出的三种情况及解决办法分析 Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。 这里根据平时遇到的情况和相关资料进行一个...

    android_内存溢出处理

    解决加载图片内存溢出的问题 在加载图片时,需要注意图片的大小不能超过 RAM 的内存。如果图片的大小超过了 RAM 的内存,就会出现 java.lang.OutOfMemoryError:bitmap size exceeds VM budget 异常。解决这个问题...

    TOMCAT内存大小调整

    OutOfMemoryError: PermGen space异常是由于 PermGen space 内存溢出引起的。解决方法是手动设置MaxPermSize大小。在Tomcat以bat方式启动时,需要修改TOMCAT_HOME/bin/catalina.sh文件,加入以下行:`JAVA_OPTS="-...

    Android避免内存溢出(Out of Memory)方法汇总

    避免内存溢出的方法,主要是对以下三个方面对程序进行优化 内存引用 在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用 强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那...

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

    在 Eclipse 中通过 Tomcat 运行 J2EE 项目时,可能会出现 java.lang.OutOfMemoryError: PermGen space 异常,这是由于 JVM 默认分配的运行空间过小,导致 J2EE 项目加载的类过多,造成内存溢出。 PermGen space 是...

    游戏画面就弹出内存不能为read修复工具

    解决方法:Win XP的“预读取”技术这种最佳化技术也被用到了应用程序上,系统对每一个应用程序的前几次启动情况进行分析,然后新增一个描述套用需求的虚拟“内存映像”,并把这些信息储存到WindowsPrefetch文件夹。...

    解决Android平台中应用程序OOM异常的方法

    首先,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。 怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),在这样的一种情况下,就可能...

    操作系统(内存管理)

    让我们来了解可用于内存管理的不同方法,它们的好处与不足,以及它们最适用的情形。 回页首 C 风格的内存分配程序 C 编程语言提供了两个函数来满足我们的三个需求: malloc:该函数分配给定的字节...

    解决Java_heap_space问题

    解决Java_heap_space问题

    0x00000000内存不能为read修复工具

    解决方法:内存的兼容性问题!遇到这类问题,用户可以自行打开机器把内存的位置调动一下,看问 题是否可以解决,如果问题依旧,可与你的朋友调换内存使用。 通过上面的几个例子,可以看到,出现故障的原因有好多种...

    java 异常总结

    其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部...

    并发编程面试题以及答案.docx

    * Java 程序的内存溢出和内存泄露:概念、原因、解决方法等。 四、多线程/并发 * 创建线程:使用 Thread 和 Runnable 接口创建线程的方法和实现。 * 保证线程安全:使用 synchronized、Lock、volatile 等方法保证...

    软件工程课后习题宝典

    java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try..catch处理或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以,编译器不...

    道路缺陷自动检测程序

    提出了一种针对C语言程序内存访问缺陷的符号执行检测方法,该方法可通过自动化构造的测试用例发现程序内部的内存访问缺陷,如缓冲区溢出、跨界访问和指针异常等。使用符号跟踪缓冲区长度的方法,一方面减少了符号...

Global site tag (gtag.js) - Google Analytics