java内存溢出总结(1.8)
堆溢出
- 原因:老年代没有足够的空间存放即将进入老年代对象(或者没有连续的空间存下某个大对象),1.多次gc没有回收的对象 2. ygc后,s区满了,多余的对象直接进入老年代,3.大对象直接进入老年代
- 解决办法:1.检查是否存在内存泄漏,2.合理设置 新生代和老年代的比例 3.增大 堆内存 -xmx
元数据区溢出
- 原因:1.加载大量的class(包括ASM、Cglib、javassit、动态代理库生成的)2.大量JSP文件编译成Servlet类文件 3.对于OSGI的应用,被不同的加载器加载同一个类会保存多分.
- 解决办法:1.合理使用ClassLoader,并定期回收2.减少系统生成类的数量 3.增大-XX:MetaspaceSize -XX:MaxMetaspaceSize
栈溢出(stackoverflow)
- 原因:1.栈的调用太深(大部分是写递归死循环)2.方法中使用到大量局部变量
- 解决办法:1.检查代码的递归调用是否存在问题 2.增大 栈空间大小 -Xss
无法创建线程(unable to create native thread)
- 原因:1.程序创建的线程数超过了操作系统的限制,2.系统内存耗尽,无法为新线程分配内存( 栈空间大小*线程 + 堆大小+元数据区 +直接内存 > 系统内存)
- 解决办法:1.减少 虚拟机栈大小 -Xss 2.减少堆大小 -xmx
直接内存溢出
- 原因:1.内存泄漏,导致直接内存无法被回收 2.大量使用nio 3.系统内存耗尽
- 解决办法: 1.检查代码,及时释放不再使用的直接内存 2.增大直接内存大小-XX:MaxDirectMemorySize 3.减少堆空间大小
java内存溢出总结(1.8)的更多相关文章
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
最近老是遇见服务器内存溢出的问题,故在网上搜了搜,总结了一些java内存溢出的解决方式 java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都 ...
- java内存溢出分析(二)
我们继续java内存溢出分析(一)的分析,点击Details>按钮,显示如下图,我们发现有一个对象数量达到280370216个,再点击其中的List objects 点击后,显示下图 至此,我们 ...
- Java内存溢出详解
转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap ...
- Java内存溢出的详细解决方案
本文介绍了Java内存溢出的详细解决方案.本文总结内存溢出主要有两种情况,而JVM经常调用垃圾回收器解决内存堆不足的问题,但是有时仍会有内存不足的错误.作者分析了JVM内存区域组成及JVM设置虚拟内存 ...
- 老李案例分享:定位JAVA内存溢出
老李案例分享:定位JAVA内存溢出 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培 ...
- java内存溢出问题
相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决j ...
- Java内存溢出异常(上)
上一篇文章我们讲了JVM运行时数据区域与内存溢出异常,其中对于内存溢出异常这部分将的不够详细,这篇文章将着重讲解Java内存溢出异常的相关知识.如果有没看过上一篇文章的小伙伴们,请点击Java内存区域 ...
- Java内存溢出异常(下)
此篇是上一篇文章Java内存溢出异常(上)的续篇,没有看过的同学,可以先看一下上篇.本篇文章将介绍剩余的两个溢出异常:方法区和运行时常量池溢出. 方法区和运行时常量池溢出 这部分为什么会放在一起呢?在 ...
- java内存溢出的解决思路
原文地址:https://www.cnblogs.com/200911/p/3965108.html 内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能 ...
- java内存溢出分析工具
http://www.cnblogs.com/preftest/archive/2011/12/08/2281322.html java内存溢出分析工具:jmap使用实战 在一次解决系统tomcat老 ...
随机推荐
- [Python设计模式] 第10章 怎么出试卷?——模版方法模式
github地址:https://github.com/cheesezh/python_design_patterns 题目 小时候数学老师的随堂测验,都是老师在黑板上写题目,学生在下边抄,然后再做题 ...
- 【Mac使用系列】常用软件及快捷键
Mac下配置ss: 下载地址:https://github.com/shadowsocks/shadowsocks-iOS/releases 旧版本:https://blog.csdn.net/vqh ...
- 添加JavaDoc
使用javadoc比较容易生成文档,命令如下: javadoc -d doc -sourcepath src/main/java/ -subpackages com -encoding UTF-8 - ...
- Java实现 SSL双向认证
我们常见的SSL验证较多的只是验证我们的服务器是否是真实正确的,当然如果你访问的URL压根就错了,那谁也没有办法.这个就是所谓的SSL单向认证. 但是实际中,我们有可能还会验证客户端是否符合要求,也就 ...
- 新手如何学习 jQuery?
可以看张晓菲的<锋利的jQuery>,重点是自己理解函数用法并自行实现一些常用的效果.如果需要快速查阅可以用这个api,每个函数都附有简单的示例:http://api.jquery.com ...
- ubuntu安装odbc及(mysql驱动)
一.安装odbc apt-get install unixodbc 如果需要用到编译的头文件之类的 apt-get install unixodbc-dev 二.安装mysql驱动 apt-get i ...
- CHKDSK/f
chkdisk c: /f
- 【iCore4 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入
实验现象: 按键每按下一次,三色LED切换一次状态. 核心源代码: module key_ctrl( input clk_25m, input rst_n, input key, output fpg ...
- 【6集iCore3_ADP触摸屏驱动讲解视频】6-2 基于FSMC总线的ARM与FPGA通信
视频简介: 该视频介绍基于FSMC总线的ARM与FPGA通信 源视频包下载地址: 链接:http://pan.baidu.com/s/1slJDoQD 密码:tmw7 银杏科技优酷视频发布区: ...
- 水塘抽样(Reservoir Sampling)问题
水塘抽样是一系列的随机算法,其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况. 在高德纳的计算机程序设计艺术中,有如下问题: ...