程序由于处理的数据量超过一定规模后就会导致java虚拟机内存溢出,提示错误信息,Exception in thread "main" java.lang.OutOfMemoryError:Java heap space,java的运行参数已经设置了运行参数-Xms1024M -Xmx1024M,请问还有没有其它的解决办法?如果没有其它的方法,是不是用C++重写程序会解决这个问题?

解决方案 »

  1.   

    大批量数据程序仍然可以控制的
    优化你现有的程序吧
    PS:为什么要用C++,内存溢出本质跟语言没关系
      

  2.   

    JAVA虚拟机得内存限制好像是100M,如果你得对象数目超过了这样得限制,自然会有异常,任何语言都是一样的,只是由于JAVA得内存回收不是程序员可以控制的,所以他得内存泄露也成为一个大问题,而C++程序,如果你释放控制的好,内存泄露不是非常大得问题
      

  3.   

    与其让 jvm 动态递增非配内存,到不如将最小内存与最大内存设置的相同,
    在加上这个参数看看:-XX:MaxPermSize=512m,Perm 空间用来存储加载的类可以 g.cn 一下, 有很多介绍
      

  4.   

    for(ref in conn)
    {
      ++i;
      if(i==1000){
      数据提交一下,资源回收一下呗
      i=0;
      }
    }
      

  5.   

    如果只是数据量的问题,可以使用64位的jdk,把内存设到8G去。如果没这么好的设备,那么修改程序吧。用游标慢慢滚。