JAXB的内存泄漏

时间:2010-05-26 09:12:18

标签: java dom jaxb out-of-memory

我出现内存不足错误:

Memory Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at org.apache.xerces.dom.CoreDocumentImpl.createElement(CoreDocumentImpl.java:564)

我有一个独立的Java程序,它从数据库中获取数据并使用DOM创建XML文件。如果获取的数据很大,我会收到上述错误,在我的情况下它是> 1,000,000 记录。

我从unix调用Java类时已将2GB定义为堆大小。

我用JAXB尝试过,但仍然没有任何明显的改进。

如何改进代码的任何建议。

1 个答案:

答案 0 :(得分:6)

您应该避免一次将整个文件加载到内存中。为此,请从使用DOM切换到其他技术,例如 SAX或 StAX。它是一个流API,因此更适合处理大量的XML数据。

编辑: SAX不支持写作,因此不适用于此。