【发布时间】:2015-09-17 21:49:20
【问题描述】:
我一直听说 JAXB 是一个较慢的 XML 编组器/解组器。这是因为它一次将所有数据加载到内存中。有人建议使用 StaX 作为替代方案,因为它是一种流式 API,只会将您当前正在处理的特定行加载到内存中。
在我看来,JAXB 只会在解组时变慢,因为您向它提供了一个要解析的 XML 文件。就好像您正在编组 XML 一样,数据可能会在 JAXB 之外进入您的程序(假设它最初不是 XML),因此 JaxB 无法控制将多少数据加载到内存中。
这是一个正确的假设吗?我试图更清楚地了解 JAXB 如何编组 XML,以及它与流式 API 相比有何不同。
【问题讨论】:
-
你的问题没有意义。 JAXB 编组已经在内存中、由应用程序创建并传递给 JSXB 进行编组的对象。在编组过程中它本身不会加载任何内容。它在 unmarshalling 期间创建对象。