Java常见的几种内存溢出及解决方法

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参数增加线程栈大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker操作之mysql容器

1、创建宿主机器的挂载目录 /opt/docker/mysql/conf /opt/docker/mysql/data /opt/docker/mysql/logs 2、创建【xxx.cnf】配置文件,内容如下所示: [mysqld]#服务唯一Idserver-id 1port 3306log-error /var/log/mysql/error.log #只能用IP地址skip_nam…

Windows10系统下wsappx占用CPU资源过高?wsappx是什么?如何关闭wsappx进程?

在Windows10系统开机的时候,wsappx进程占用的CPU资源非常高,导致电脑运行速度缓慢,那么我们如何关闭wsappx进程,让电脑加快运行速度呢?下面就一起来看一下操作的方法吧。 【现象】 1、先来看一下电脑刚开机的时候&…

如何通过Windows Server 2008 R2建立NFS存储

如何通过Windows Server 2008 R2建立NFS存储在我们日常工作的某些实验中,会需要使用存储服务器。而硬件存储成本高,如StarWind之类的iSCSI软存储解决方案需要单独下载服务器端程序,且配置比较繁琐,令很多新手们很是头疼。事实上&a…

python-windows安装相关问题

1.python的环境配置,有些时候是没有配置的,需要在【系统环境】-【path】里添加。 2.安装pip:从官网下载pip包,然后到包目录》python setup.py install 安装 3.安装scrapyd:正常使用pip3 install scrapyd安装不起&…

hdu 1542/1255 Atlantis/覆盖的面积

1542 1255 两道扫描线线段树的入门题。 基本没有什么区别&#xff0c;前者是模板&#xff0c;后者因为是求覆盖次数至少在两次以上的&#xff0c;这个同样是具有并集性质的&#xff0c;所以把cover的判断条件更改一下就可以了qwq。 hdu1542 代码如下&#xff1a; #include<i…

使用了JDK自带的jconsole查看Tomcat运行情况

最近对公司的项目进行JVM调优&#xff0c;使用了JDK自带的jconsole查看Tomcat运行情况&#xff0c;记录下配置以便以后参考&#xff1a;首先&#xff0c;修改Tomcat的bin目录下的catalina.bat文件&#xff0c;在JAVA_OPTS变量中添加下面四行&#xff0c;即可set JAVA_OPTS %JAV…

jvm02

java虚拟机内存管理 每个线程就是一个顺序的执行单元&#xff0c;线程共享区即多个线程共享同一块区域&#xff0c;线程独占区即每个线程都有自己的虚拟机栈&#xff0c;本地方法栈&#xff0c;程序计数器。 程序计数器是一个比较小的内存空间&#xff0c;可以看作是当前线程所…

搭建svn管理平台

安装svn服务器&#xff1a;yum -y install subversion创建svn的目录&#xff1a;mkdir -p /data/svn初始化svn目录&#xff1a;svnadmin create /data/svnconf下的三个目录介绍&#xff1a;authz&#xff1a;控制权限,创建用户。密码在passwd创建 passwd&#xff1a;密码文件&…

Oracle dataguard 正常切换和应急切换

Oracle dataguard 正常切换和应急切换oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换&#xff08;应急切换模拟主库出现问题无法还原,备库脱离dataguard接管主库对外提供服务&#xff09;1&#xff09;Oracl…

好程序员web前端分享JS引擎的执行机制

好程序员web前端分享JS引擎的执行机制&#xff0c;请先着重牢记两点&#xff01;JS是单线程语言。JS的EventLoop是JS的执行机制。深入了解JS的执行&#xff0c;就等于深入了解JS里的eventloop。1、灵魂三问&#xff1a;JS为什么是单线程的?为什么需要异步?单线程又是如何实现…

shutil模块、json和pickle模块

shutil模块&#xff1a; 高级的文件、文件夹、压缩包处理模块 json和pickle模块 之前学过eval内置方法可以将一个字符串转化成Python对象&#xff0c;但eval方法是有局限性的&#xff0c;对于普通的数据类型&#xff0c;json.loads、eval都可以使用&#xff0c;但遇到特殊类型的…

每日一问:LayoutParams 你知道多少?

前面的文章中着重讲解了 View 的测量流程。其中我提到了一句非常重要的话&#xff1a;**View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 LayoutParams 共同决定的。**我们在前面的 每日一问&#xff1a;谈谈对 MeasureSpec 的理解 把 MeasureSpec 的重点进行了讲解&a…

kuangbin专题十六 KMP扩展KMP HDU2594 Simpsons’ Hidden Talents

Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had. Marge: Yeah, what is it? Homer: Take me for example. I want to find out if I have a talent in politics, OK? Marge: OK. Homer: So I take some politician’s na…

SNI: 实现多域名虚拟主机的SSL/TLS认证

为什么80%的码农都做不了架构师&#xff1f;>>> 一. 介绍 早期的SSLv2根据经典的公钥基础设施PKI(Public Key Infrastructure)设计&#xff0c;它默认认为&#xff1a;一台服务器&#xff08;或者说一个IP&#xff09;只会提供一个服务&#xff0c;所以在SSL握手时…

echo(),print(),print_r(),var_dump()的区别

echo可以一次输出多个值&#xff0c;多个值之间用逗号分隔。echo是语言结构(language construct)&#xff0c;而并不是真正的函数&#xff0c;因此不能作为表达式的一部分使用。echo是php的内部指令&#xff0c;不是函数&#xff0c;无返回值。 print()&#xff1a;函数print()…

我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)...

为什么80%的码农都做不了架构师&#xff1f;>>> 最近碰到客户整个网站改版的需要&#xff0c;非常短的时间里只有1周时间里&#xff0c;需要把整个B2C网站彻底的进行版面&#xff0c;我自己估算了一下&#xff0c;就是往死里干一天工作48个小时&#xff0c;1周也干…

c#做端口转发程序支持正向连接和反向链接

3389的时候 例子1&#xff1a;连接a机器的3389端口连不上&#xff0c;因为对方防火墙或者网关做了限制&#xff0c;只能访问a机器的个别端口比如80。 例子2&#xff1a;连接a机器的几乎所有端口都连不上&#xff08;对方乃内网或者防火墙网关做了限制&#xff09;&#xff0c…

Spring Boot(十四):spring boot整合shiro-登录认证和权限管理

Spring Boot(十四)&#xff1a;spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro。安全应该是互联网公司的一道生命线&#xff0c;几乎任何的公司都会涉及到这方面的需求。在Java领域一般有Spring Security、Apache Shiro等安全框架&#xff0c;但是由…

通用权限管理系统组件 (GPM - General Permissions Manager) 不改数据库、甚至不写代码就集成铜墙铁壁权限管理组件...

为什么80%的码农都做不了架构师&#xff1f;>>> 越成熟的东西&#xff0c;越牛X的东西&#xff0c;越简单才对&#xff0c;简单才是硬道理&#xff0c;苹果的手机只有少数几个按键&#xff0c;苹果Ipad也很少的按钮&#xff0c;甚至连苹果的笔记本键盘都少一排&…

数学符号及读法大全

数学符号及读法大全 常用数学输入符号&#xff1a; ≈ ≡ ≠ &#xff1d; ≤≥ &#xff1c; &#xff1e; ≮ ≯ ∷ &#xff0b; &#xff0d; &#xff0f; ∫ ∮ ∝ ∞ ∧ ∨ ∑ ∏ ∪ ∩ ∈ ∵ ∴ ⊥ ‖ ∠ ⌒ ≌ ∽ √ &#xff08;&#xff09; 【】&#xff5b…