`
ujs_lifazhu
  • 浏览: 32212 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java heap oom

    博客分类:
  • java
阅读更多
使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.

1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m

2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat  中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined  这行的下面加合适.

3.如果是linux系统
Linux  在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS='-Xms64 -Xmx512'\

from
http://zhidao.baidu.com/question/52833006.html
分享到:
评论

相关推荐

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    java解决nested exception is java.lang.OutOfMemoryError Java heap space 解决OOM

    Java内存分析工具(IBM heapAnalyzer ha457)

    IBM开发的强大的内存dump分析工具,IBM heapAnalyzer是通过分析OOM后的Java heap dump文件的,通过对dump文件的分析找到可能泄露的点,这是IBM官方的工具,它对堆栈调用做了可视化的转换,可以更直观地看到调用关系...

    IBMHeapAnalyzer JAVA内存分析工具

    IBMHeapAnalyzer是一个非常重要的JAVA程序bug分析工具。它可以帮助我们分析哪些原因可能导致了程序的内存溢出...IBM heapAnalyzer是通过分析OOM后的Java heap dump文件的,通过对dump文件的分析找到内存可能泄露的点。

    IBM Heap analyzer

    IBM开发的强大的内存dump分析工具,,IBM heapAnalyzer是通过分析OOM后的Java heap dump文件的,通过对dump文件的分析找到内存可能泄露的点

    IBM HeapAnalyzer

    Java OOM分析工具,Linux下使用jmap -heap:format=b pid,导出发生OOM进程的内存快照,使用该工具分析OOM发生原因

    ibm heapanalyzer

    主要用于分析oom产生的日志;可以用于离线分析;完全脱离原有程序

    Android编译gradle.properties文件及说明

    Android编译gradle.properties文件及说明, 解决Android gradle编译错误OOM:java heap space

    一次OOM问题排查过程实战记录

    Exception in thread http-nio-8080-exec-1027 java.lang.OutOfMemoryError: Java heap space Exception in thread http-nio-8080-exec-1031 java.lang.OutOfMemoryError: Java heap space 看线程名称应该是tomcat的...

    KOOM:KOOM是Kwai在移动平台上的OOM杀手

    implementation ' com.kwai.koom:java-oom:1.0.7 ' } 快速教程 您可以在要启动内存监视时立即设置KOOM,在应用程序启动时进行设置,您可以像这样: public class KOOMApplication extends Applicat

    Grow heap (frag case) 堆内存过大的深入解析

    对于Android开发者来说虽然使用了可以自动管理内存的Java语言,但是对于内存管理不当,可能你的应用不断出现类似INFO/dalvikvm-heap(10798): Grow heap (frag case) to 6.437MB for 1114126-byte allocation,而出现...

    JVM原理之运行时数据区详解

    4. 运行时数据区 ...4.1 堆 (heap) 堆在虚拟机中是一块共享区域, ...java.lang.OutOfMemoryError: Java heap space 代码演示 /** * 演示堆溢出 * 设置堆 大小为:-Xms10m -Xmx10m */ public class HeapDemo { privat

    java8rt.jar源码-jvm:jvm入门jvm面试题

    什么是OOM,什么是栈溢出StackOVerFlowError? 怎么分析 JVM的常用调优参数有哪些 内存快照如何抓取,怎么分析Dump文件?知道吗? 谈谈JVM中,类加载器你的认识? rt-jar ext application 1、JVM的位置 2、JVM的体系...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路; 4、基础知识讲解透彻、详尽; 5、JVM零基础也能听懂。 第一节:学习JVM的意义和目标 1.1 意义: 1.2 目标: 第二节:JVM内存模型 1.1 概念 1.2 ...

    浅谈Android应用的内存优化及Handler的内存泄漏问题

    Java里会将这块空间分成Stack栈内存和Heap堆内存。stack里存放对象的引用,heap里存放实际对象数据。 在程序运行中会创建对象,如果未合理管理内存,比如不及时回收无效空间就会造成内存泄露,严重的话可能导致使用...

    Android 内存泄漏的几种可能总结

    Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同时防止未释放的内存把堆栈(heap)挤爆的可能,所以写出来的代码更为安全。 不幸的是,在...

    Android内存泄漏的八种可能

    Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentationfault)导致崩溃,同时防止未释放的内存把堆栈(heap)挤爆的可能,所以写出来的代码更为安全。不幸的是,在Java...

    Android内存泄漏的轻松解决方法

    严重的时候可能会导致内存溢出错误,即 OOM Error 下面我们从基础说起 基础知识 Java 的内存分配简述 方法区(non-heap):编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量; 栈区:当...

Global site tag (gtag.js) - Google Analytics