Java常见的几种内存溢出及解决方法【情况一】:
java.lang.OutOfMemoryError:Javaheapspace:这种是java堆内存不够,一个原因是真不够(如递归的层数太多等),另一个原因是程序中有死循环;
  如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决:
  -Xms3062m
  -Xmx3062m
【情况二】
  java.lang.OutOfMemoryError:GCoverheadlimitexceeded
  【解释】:JDK6新增错误类型,当GC为释放很小空间占用大量时间时抛出;一般是因为堆太小,导致异常的原因,没有足够的内存。
  【解决方案】:
  1、查看系统是否有使用大内存的代码或死循环;
  2、通过添加JVM配置,来限制使用内存:
  -XX:-UseGCOverheadLimit
【情况三】:
  java.lang.OutOfMemoryError:PermGenspace:这种是P区内存不够,可通过调整JVM的配置:
  -XX:MaxPermSize=128m
  -XXermSize=128m
  【注】:
  JVM的Perm区主要用于存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace,这个区域成为年老代,GC在主程序运行期间不会对年老区进行清理,默认是64M大小,当程序需要加载的对象比较多时,超过64M就会报这部分内存溢出了,需要加大内存分配,一般128m足够。
【情况四】:
  java.lang.OutOfMemoryError:Directbuffermemory
  调整-XX:MaxDirectMemorySize=参数,如添加JVM配置:
  -XX:MaxDirectMemorySize=128m
【情况五】:
  java.lang.OutOfMemoryError:unabletocreatenewnativethread
  【原因】:Stack空间不足以创建额外的线程,要么是创建的线程过多,要么是Stack空间确实小了。
  【解决】:由于JVM没有提供参数设置总的stack空间大小,但可以设置单个线程栈的大小;而系统的用户空间一共是3G,除了Text/Data/BSS/MemoryMapping几个段之外,Heap和Stack空间的总量有限,是此消彼长的。因此遇到这个错误,可以通过两个途径解决:1.通过-Xss启动参数减少单个线程栈大小,这样便能开更多线程(当然不能太小,太小会出现StackOverflowError);2.通过-Xms-Xmx两参数减少Heap大小,将内存让给Stack(前提是保证Heap空间够用)。
【情况六】:
  java.lang.StackOverflowError
  【原因】:这也内存溢出错误的一种,即线程栈的溢出,要么是方法调用层次过多(比如存在无限递归调用),要么是线程栈太小。
  【解决】:优化程序设计,减少方法调用层次;调整-Xss参数增加线程栈大小。

Java常见的几种内存溢出及解决方法相关推荐

  1. python会内存泄漏吗_Python内存泄漏和内存溢出的解决方法

    Python内存泄漏和内存溢出的解决方法 发布时间:2020-10-30 23:08:34 来源:亿速云 阅读:92 作者:Leah 这篇文章将为大家详细讲解有关Python内存泄漏和内存溢出的解决方 ...

  2. Android APP常见的5类内存泄露及解决方法

    Android APP常见的5类内存泄露及解决方法 参考文章: (1)Android APP常见的5类内存泄露及解决方法 (2)https://www.cnblogs.com/genggeng/p/7 ...

  3. MyEclipse 2015 运行tomcat 内存溢出的解决方法

    MyEclipse 2015 运行tomcat 内存溢出的解决方法 参考文章: (1)MyEclipse 2015 运行tomcat 内存溢出的解决方法 (2)https://www.cnblogs. ...

  4. ionic3生产打包javascript内存溢出的解决方法

    ionic3生产打包javascript内存溢出的解决方法 参考文章: (1)ionic3生产打包javascript内存溢出的解决方法 (2)https://www.cnblogs.com/wei- ...

  5. 内存泄露、内存溢出以及解决方法

    目录(?)[+] 内存泄露是指程序在运行过程中动态申请的内存空间不再使用后没有及时释放,从而很可能导致应用程序内存无线增长.更广义的内存泄露包括未对系统的资源的及时释放,比如句柄等. 内存溢出即用户在 ...

  6. 基于Java内存溢出的解决方法详解

    一.内存溢出类型 1.java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆.堆是给开发人员用的上面说的就是,是在JVM启动时创建:非堆 ...

  7. php查询mysql返回大量数据结果集导致内存溢出的解决方法

    web开发中如果遇到php查询mysql返回大量数据导致内存溢出.或者内存不够用的情况那就需要看下MySQL C API的关联,那么究竟是什么导致php查询mysql返回大量数据时内存不够用情况? 答 ...

  8. 【移动开发】EditText输入字数限制总结(包括中文输入内存溢出的解决方法)...

    限定EditText输入个数的解决方案很多,但是一般主要考虑两点,也就是处理两件事: (1)不同语言字符(英文.中文等)处理方式 (2)输入字符达到数目后,是否仍然允许用户输入 第一点,涉及的东东其实 ...

  9. linux内存条坏了,内存常见故障有哪些,内存故障的解决方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 大家在计算机故障维修过程中,遇到的最多的问题恐怕要属内存报警了.刚买两天的新机器会出现内存报警:使用一年的机器也会出现内存报警:天气突然降温的时候会出现内 ...

最新文章

  1. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy
  2. 2021-05-07 matlab中的addpath用法
  3. 深入理解.net服务器控件
  4. 复合机 涂布机_涂布复合机适用的范围在那些地方?
  5. WIN7下搭建FTP
  6. GNS3桥接modem拨号and QOS限速
  7. 图书馆管理系统——超期付款
  8. Windows USB驱动开发点滴积累备忘录
  9. Julia: Dates =DateFormat, format,parse.......
  10. base64原理及其编解码的python实现
  11. 基于R实现统计中的检验方法---方差分析
  12. 小程序 加快安卓手机向蓝牙设备发送大数据
  13. 在github上写脚注的方法 markdown
  14. [Echarts][全网唯一]X轴axisLabel随文字长度自动旋转的实现思路
  15. Photoshop透明婚纱照抠图处理
  16. 深度学习中的epochs、batch_size、iterations详解
  17. mysql 8安装方法_Mysql8.0.17安装教程【推荐】
  18. 线程同步(7种同步方法)
  19. Keystore、Key attestation
  20. c语言写一个进出货管理,[源码和文档分享]基于C语言实现的超市管理系统

热门文章

  1. HDU嵌入式实验课程大作业分析报告
  2. 斯威夫特山地车_斯威夫特| 两个数字相加的程序
  3. 爬动的蠕虫(C++)
  4. 设置DVWA出现Could not connect to the MySQL service. Please check the config的解决方法,默认登录账号
  5. 仍然报错_only_full_group_by配置,竟让所有应用报错?
  6. uva 1623——Enter The Dragon
  7. 《C++ Primer 第五版》(第4.11-4.12节)——static_cast,const_cast和reinterpret_cast类型转换, 运算符优先级表
  8. 操作系统【二】死锁问题以及处理方法
  9. 用c++模拟实现一个学生成绩管理系统
  10. C语言中strspn()函数和strcspn()函数的对比使用