我出现内存不足错误:
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尝试过,但仍然没有任何明显的改进。
如何改进代码的任何建议。
答案 0 :(得分:6)
您应该避免一次将整个文件加载到内存中。为此,请从使用DOM切换到其他技术,例如 SAX或 StAX。它是一个流API,因此更适合处理大量的XML数据。
编辑: SAX不支持写作,因此不适用于此。