我用Jprofiler测试过了,发现没有超出我设置的heap space空间,我设置的最大最小都是64m,其实设置512m也会报这个错误,很是奇怪

解决方案 »

  1.   

    windows vista
    以及windows server 2003
    都一样
      

  2.   

    感觉你的dom4j树实例数量有点夸张
      

  3.   

    搜索下你要调整jvm的heap 参数的
      

  4.   

    我尝试过几种设置,结果都是一样的
    包括
    -Xms64m -Xmx64m
    -Xms128m -Xmx128m
    -Xms256m -Xmx256m
    -Xms512m -Xmx512m
      

  5.   

    java.lang.OutOfMemoryError: Java heap space 
    Heap size 设置 
    JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值, 
    其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可 
    进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。 
    提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 
    提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 
    解决方法:手动设置Heap size 
    修改TOMCAT_HOME/bin/catalina.sh 
    在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行: 
    JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m" http://plplum.blog.163.com/blog/static/31032400200941033452869/
      

  6.   

    你为何要将那么大的对象放入内存?为何不用Stream方式处理