`
Elvis_Wu
  • 浏览: 51372 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JVM内存大小设置(java heap space)(转)

    博客分类:
  • JAVA
阅读更多

一般情况下java程序容易出现java heap space 的错误提示,这个问题就是JVM的堆内存问题,因为其初始值非常小,所以在不够用的情况下要进行设置。

当然要确保你的程序正确,做的不是无限循环之类的无用功。在运行该程序时设置如下:

java -Xmx1g  -Xms1g application

-Xmx1g 设置最大可用内存为1g

-Xms1g 设置内存初始化最小值1g

后面application为你的JAVA程序名。

最大和最小值设置为一样的,是看了某贴:以避免每次垃圾回收完成后JVM重新分配内存

值的大小根据自己电脑配置而定,不能超过电脑的物理内存。有贴建议:-Xms 为电脑物理内存的1/64 ,-Xmx为电脑物理内存的1/4

我自己在运行的时候就设置了这两个值,程序就可以跑了,其它的设置可参考

http://hi.baidu.com/zhg0914/blog/item/8e9487f520dc1d23bc310983.html

http://hi.baidu.com/cnbxj/blog/item/36206b248cad5e3ac89559c3.html

好像java 程序只有在运行时设置JVM大小,而没有一个可以永久设置的地方(也可能是我在网上没有搜到)

Tomcat 关于JVM的设置:

Linux中Tomcat的bin目录中有一个叫catalina.sh的文件,在

# ----- Execute The Requested Command -----------------------------------------

# Bugzilla 37848: only output this if we have a TTY
if [ $have_tty -eq 1 ]; then
  JAVA_OPTS="-server -Xms1024m -Xmx1024m  -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true"
  echo "Using CATALINA_BASE:   $CATALINA_BASE"
  echo "Using CATALINA_HOME:   $CATALINA_HOME"
  echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
  if [ "$1" = "debug" -o "$1" = "javac" ] ; then
    echo "Using JAVA_HOME:       $JAVA_HOME"
  else
    echo "Using JRE_HOME:       $JRE_HOME"
  fi
该段添上红色字体部分,然后重启Tomcat

Windows  上我装的是安装版Tomcat,直接在Configure中Java选项卡中Initial memory pool:和Maximum memory pool中分别设置最小和最大内存。

另一种版本在Tomcat的bin目录下有一个catalina.bat文件,在前面加上

JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]'

(没有试验过)

分享到:
评论

相关推荐

    kettle内存溢出(Java heap space)以及解决方法.docx

    1. **调整JVM内存设置**:增大JVM的最大堆内存大小,例如设置`-Xmx4g`表示设置最大堆内存为4GB。确保这个值不超过服务器物理内存的70%以防止操作系统因交换页面而变慢。 2. **优化Kettle步骤配置**:如问题描述中所...

    解决Java_heap_space问题

    2. **最大堆大小限制**:如果应用程序的内存需求超过JVM的最大堆大小设置,也会导致heap space问题。 3. **内存泄漏**:程序中存在未被及时回收的不再使用的对象,长期占用内存资源,最终导致可用堆内存耗尽。 ####...

    关于(java heap space)内存溢出的解决办法

    在Java编程中,"java heap space"内存溢出是一个常见的问题,它通常发生在应用程序尝试分配超过JVM堆内存限制的对象时。这个问题对于任何Java开发者来说都至关重要,因为如果不妥善处理,可能会导致程序崩溃。以下是...

    java.lang.OutOfMemoryError: Java heap space 解决方法

    "Java.lang.OutOfMemoryError: Java heap space 解决...Java.lang.OutOfMemoryError: Java heap space 是一种常见的 Java 错误,解决该问题需要从多方面入手,包括调整 JVM 的堆大小、调整 Tomcat 的配置、优化程序等。

    java抛java heap space

    在 Java 应用程序运行过程中,如果出现内存不足的情况,JVM(Java虚拟机)会抛出 `java.lang.OutOfMemoryError: Java heap space` 的异常。这种错误通常发生在应用程序对内存的需求超过了 JVM 能够提供的最大堆空间...

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    其中,“java.lang.OutOfMemoryError: Java heap space”是一种常见的异常情况,它表明Java虚拟机(JVM)的堆内存空间已耗尽。 #### 标题和描述中的知识点详解 **标题:“java错误处理:java.lang.OutOfMemoryError:...

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    - 这样设置后,JVM的初始堆内存大小为128MB,最大堆内存大小为512MB。根据实际需求调整这两个值的大小。 2. **优化代码逻辑**: - 检查并优化程序中可能存在的内存泄漏问题,确保不再使用的对象能够及时被垃圾...

    Java heap space 解决方法

    通过上述的详细介绍,我们可以看出解决“Java heap space”问题的关键在于合理调整JVM的堆内存大小。无论是Windows还是Linux系统,都可以通过修改相应的启动脚本或环境变量来实现这一目标。正确地配置这些参数不仅...

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

    Java程序在运行过程中可能会遇到各种异常,其中"nested exception is java.lang.OutOfMemoryError: Java heap space"是一个常见的问题,通常发生在程序试图分配超过堆内存限制的空间时。这个错误表明Java虚拟机(JVM...

    java heap space解决方法

    ### Java Heap Space 解决方法详解 #### 一、引言 在Java应用程序运行过程中,经常会遇到“Out of Memory Error: Java Heap Space”的错误提示。这种错误通常发生在Java虚拟机(JVM)的堆内存不足时,导致程序无法...

    tomcat 解决Java heap space问题

    标题中的“tomcat 解决Java heap space问题”指的是在运行Apache Tomcat服务器时,由于Java应用程序内存分配不当或资源消耗过大导致的“Java heap space”错误。这个问题通常出现在Java虚拟机(JVM)试图为对象分配...

    编译时出现java.lang.OutOfMemoryError Java heap space异常

    ### 编译时出现java.lang.OutOfMemoryError Java heap space异常 #### 一、问题概述 在进行Java项目编译的过程中,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这种异常。这类异常通常表明Java虚拟机...

    An internal error occurred during: \"Building workspace\". Java heap space

    当程序创建过多的对象或单个对象占用过大内存,以至于超过了JVM分配的堆内存大小时,就会抛出“Java heap space”异常。 在Eclipse中,"Building workspace"是Eclipse自动构建项目的过程,它包括编译、索引更新等...

    记录java.lang.OutOfMemoryErrorJava heap space的情况.docx

    JVM的内存调优还包括合理设定堆内存大小,避免频繁的垃圾回收,以及优化对象的创建和释放。 四、其他内存区域: 1. 每个线程都有自己的栈空间(Stack),其大小可以通过`-Xss`参数设置。栈的大小直接影响到可以同时...

    JVM内存溢出问题解析

    JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space 是非堆内存,用于存放类的信息,GC 不会释放该空间。如果 web 应用使用了大量...

    java[1].lang.OutOfMemoryError_Java_heap_space错误及处理办法

    - 对于Tomcat等应用服务器,可以在`catalina.bat`(Windows环境)或`catalina.sh`(Unix/Linux环境)文件中设置`JAVA_OPTS`环境变量来控制JVM的堆内存大小。 2. **优化代码逻辑**: - 减少不必要的对象创建,特别...

    JVM内存模型

    JVM内存模型是Java虚拟机(JVM)中的一种内存管理机制,它将内存区分为永久区内存(Permanent space)和堆内存(heap space)两大块。永久区内存用于存放加载的Class类级对象,如class本身、method、field等等,而堆...

Global site tag (gtag.js) - Google Analytics