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

一般情况下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[可以使用的最大内存]'

(没有试验过)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值