首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

java.lang.OutOfMemoryError web服务器的内存小

2014-01-26 
此问题如下: 在公司程序中,有可能web服务器的内存小了,出现java.lang.OutOfMemoryError 本人检查了程序,有

此问题如下:
在公司程序中,有可能web服务器的内存小了,出现java.lang.OutOfMemoryError
本人检查了程序,有以下几行认为会有不妥当,请大家给个建议:
方法:private void genExcelReport(Document doc, String reportName,
  File templateDir, String templateName, String saveDir, String fileName)
  throws Exception {....
XMLOutputter xmlOut = new XMLOutputter();
String xml = xmlOut.outputString(doc); --本人认为这个有点问题
reader = new StringReader(xml);
....}
这里的doc是一个很大的对象,大概有10的样子吧,所以这个xml对象应该也有
10 m左右,我想把它改成StringBuffer,或者StringBuilder有没有更好些,
如:
StringBuffer xml=xmlOut.outputString(doc);
reader = new StringReader(xml.toString);




------解决方法--------------------------------------------------------
用 StringBuilder 或者 StringBuffer 说不定在 8M 就内存溢出了!

10M 的对象全放在内存中很容易溢出的,具体要看你这是做什么的再进行优化。
------解决方法--------------------------------------------------------
这么大的 XML,不应用 DOM 进行解析,建议采用 SAX 进行解析。
------解决方法--------------------------------------------------------
 

探讨
这么大的 XML,不应用 DOM 进行解析,建议采用 SAX 进行解析。


------解决方法--------------------------------------------------------
 

探讨
这么大的 XML,不应用 DOM 进行解析,建议采用 SAX 进行解析。


对,长XML文件,不建议直接用 String 来解析。

有什么好方法呢? 用什么解析??


------解决方法--------------------------------------------------------
xml 大了,就得压缩传输。压缩后就小了,10兆的xml压缩完估计能少很多。
 

        

热点排行