Java堆空间错误正在抛出“转换550 mb文档”,尽管堆空间高于文档大小

时间:2014-02-28 07:45:21

标签: xslt heap transformation saxon

即使堆空间高于文档大小,也会在“转换550 MB文档时”抛出Java堆空间错误。

我的代码使用

1.xsl:stylesheet of xslt transformation
2.net.sf.saxon.TransformerFactoryImpl
3.trans.transform(new StreamSource(file), result);

谢谢, 摩尼

1 个答案:

答案 0 :(得分:0)

通常使用Saxon,源文档占用的空间大小约为词汇XML的5倍。当然,该比例可以根据文件的复杂性而变化。因此对于550Mb,分配3Gb应该足够了。在启动Java以分配足够的堆空间时使用-Xmx选项。

您接近使用传统内存转换所能完成的限制,因此您可能希望查看进行流式转换的选项。有关此信息,请参阅http://saxonica.com/documentation/#!sourcedocs/streaming