从[java.lang.OutOfMemoryError: Java heap space]恢复
出现java.lang.OutOfMemoryError: Java heap space该错误或者是程序问题,或者被分配到JVM内存真的是不够的。
一般来说都是能够事前可控解决的。
可是假设不可控的情况。比如使用第三方包,或者系统抽筋,就会抛出OutOfMemoryError错误。
OH NO,依据不会抛出来,当前线程直接挂掉。
既然都挂掉了,谈什么恢复?并且挂掉也不仅仅是OutOfMemoryError的问题。
普通情况下,OutOfMemoryError在不可控的情况下。真的真的真的不须要处理,干脆无视好了。就当是运气好吧。
并且解决起来。程序逻辑非常难看。
假设你想较真,出现OutOfMemoryError时想死得好看一点,或者恢复起来优雅一点,那继续。
先了解OutOfMemoryError的一些特点:
1,不确定不可控性。相信可控的情况你已经攻克了。
2,不会抛出异常,也就是说try...catch不起作用。
3,出现后,当前线程就会挂掉。
4,对3点,假设在try...finally里发生OutOfMemoryError,则会运行finally语句再挂掉。但不要以为try...finally是万能的,什么情况都能得到运行。你用exit或者关机试试。
5,对3点,假设是多线程中的一个子线程(非守护),挂掉不影响其他线程。而且内存非常快(是非常快,就是非常快)能够回收。
所以在你确定会遇到OutOfMemoryError但无法解决的时候,try...finally是实用的,仅仅要不再做非常多内存的操作吧,想继续什么流程都没什么问题(我没遇到有问题的情况而已)。退出是必定的,finally里还是须要善后。记录状态等。还要记得用无关要紧的独立的线程去处理,最后通过守护程序,监控程序或者定时器又一次启动一个处理线程就是了。
====后记====
这几天用TIKA抽取文档内容并做索引。在抽取某个才40M(其他上百M以上的都没有问题)的文档时出现OutOfMemoryError,内存一下就用完了,加大到系统的上限也没用,照样完了,所以运行会停止。文档是不停地添加,并你要提取的索引的内容,为了保持该方案顺利运行,因此,上述探索。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
从[java.lang.OutOfMemoryError: Java heap space]恢复的更多相关文章
- java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出
上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...
- Tomcat报java.lang.OutOfMemoryError: Java heap space错误停止运行如何解决
最近开发的一个商业项目,部署完成后,经常出现Tomcat挂掉的现象,报的异常是:java.lang.OutOfMemoryError: Java heap space,上网google了一下,了解了一 ...
- MyCAT报java.lang.OutOfMemoryError: Java heap space
早上同事反映,mycat又假死了,估计还是内存溢出,查看了一下错误日志. INFO | jvm | // :: | java.lang.OutOfMemoryError: Java heap spac ...
- Tomcat 启动项目报错 java.lang.OutOfMemoryError: Java heap space
近日使用myeclipse 部署web项目,启动tomcat时报错: SEVERE: Error waiting for multi-thread deployment of directories ...
- 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
http://www.educity.cn/wenda/351088.html 使用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap s ...
- java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space 原因:内存溢出,内存一直申请一直占用,无法回收 解决方法:定时重启下服务,
- java.lang.OutOfMemoryError: Java heap space解决方法
引起java.lang.OutOfMemoryError: Java heap space异常,可能是由JAVA的堆栈设置太小的原因 根据网上的答案大致有以下两种解决方法: 1.在D:/apache- ...
- 【转】java.lang.OutOfMemoryError: Java heap space的解决
原文地址:http://blog.sina.com.cn/s/blog_4b12778b0100v0bb.html Myeclipse下java.lang.OutOfMemoryError: Java ...
- Hadoop执行作业时报错:java.lang.OutOfMemoryError: Java heap space
常常被一些用户问到,说“为什么我的mapreduce作业总是运行到某个阶段就报出如下错误,然后失败呢?以前同一个作业没出现过的呀?” 10/01/10 12:48:01 INFO mapred.Job ...
随机推荐
- Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
WatchKit extension可以使用iOS app同样的技术,但是由于他是extension,使用有些技术的时候会有限制,有些不推荐使用.下面是一些介绍以及什么时候使用什么技术: 有些需要权限 ...
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...
- SpringMVC源码解析- HandlerAdapter - ModelFactory(转)
ModelFactory主要是两个职责: 1. 初始化model 2. 处理器执行后将modle中相应参数设置到SessionAttributes中 我们来看看具体的处理逻辑(直接充当分析目录): 1 ...
- Scilab 的画图函数(1)
Scilab 的画图函数 plot 函数 最主要的是 plot 函数,与 matlab 中的plot 函数类似. xdata = linspace(1,10,50); ydata = sin(xdat ...
- 第十二章——SQLServer统计信息(2)——非索引键上统计信息的影响
原文:第十二章--SQLServer统计信息(2)--非索引键上统计信息的影响 前言: 索引对性能方面总是扮演着一个重要的角色,实际上,查询优化器首先检查谓词上的统计信息,然后才决定用什么索引.一般情 ...
- Visual Studio 2015使用EF6的DBFirst模式操作Sqlite数据库
什么是DBFirst 1:到官方下载并安装32位驱动(如果你是旧版的驱动,卸载掉,然后下载最新版的,否则操作数据时会出现异常) 2:通过Nuget获取System.Data.SQLite(会默认把下面 ...
- Mybatis分页插件更新
分页插件演示:http://blog.csdn.net/isea533/article/details/23831273 分页插件演示样例:http://blog.csdn.net/isea533/a ...
- nisi 脚本示例
只是简单的copy文件和添加快捷方式,安装和卸载时对程序是否运行进行检测 ;-------------------------------- ;Include Modern UI !include & ...
- android 渐变drawable
渐变Drawable它是使用<gradient>的标记的形状Drawable定义子节点的定义. 每个梯度Drawable求至少要有一个startColor和endColor属性,而且支持一 ...
- [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
大家好.我是秦培.欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 博主总算赶在这个月底写出了这篇文章.这个月由于期末考试一直没时间研究太多关于技术方面 ...