最近在用一个java编写的开源程序,可以分析xml文件。但支持的xml文件大小有限,一旦文档大小达到20M以上就会抛出内存溢出的异常。据说可以调节jvm缓存的大小就可以解决,但如何设置jvm的缓存大小呢?请教高手!

解决方案 »

  1.   

    可能我说得不对,还望指教
    据我看来你的内存益出是你解析机制的问题,你如果要在内存中构造整个DOM树当然会益出了
    你可以尝试使用digester解析你的XML文件,至于你说的JVM缓存,我只知道设置JVM内存和堆栈占用大小,呵呵
      

  2.   

    谢谢楼上的!这个程序本身没有问题,因为解析小的xml文件不会出现问题。只有文件本身超过一定限度(如20M)时才会出现内存溢出的异常。问题真正的原因可能就是系统默认的JVM内存和堆栈占用大小过小,望给出具体的设置方法。谢谢!
      

  3.   

    lz是linux的系统还是windows的?
      

  4.   

    java -Xms256m -Xmx256m ProgramEclipse->Run中有参数设定
      

  5.   

    问题解决了!在自身程序里提供了一个配置文件,修改里面堆内存的大小的选项就可以正常运行了!仍然非常感谢malligator的帮助!
      

  6.   

    -XX:MaxPermSize=768m
    -XX:MaxPermSize=512m