JAXB的内存泄漏

Anu*_*rag 2 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尝试过,但仍然没有任何明显的改进.

任何建议如何改进代码.

Joa*_*uer 6

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

编辑: SAX不支持写作,因此它不适用于此处.