【问题标题】:How to reduce JAXB context overhead?如何减少 JAXB 上下文开销?
【发布时间】:2012-10-16 04:20:46
【问题描述】:

我有一个使用 CXF 公开多个 Web 服务的服务器。
我使用 JAXB 进行 XML 序列化。
我在 JAXB 上下文中有大约 3000 个类,需要 60 MB 内存,这对我的环境来说太多了。
有没有提供 Web 服务/XML 序列化的轻量级替代方案? (其他实现)
我尝试使用标志 com.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot 但它并没有显着改变内存使用情况。
* 我已经为整个系统保存了一个上下文

【问题讨论】:

    标签: java web-services jaxb cxf


    【解决方案1】:

    CXF 支持除 JAXB 之外的数据绑定,例如 XMLBeans、Aegis 等。交换数据绑定非常简单。您可以对每个数据绑定进行试验,看看哪个绑定占用的内存最少。

    在我的实验中,记忆从来都不是问题。我更关心吞吐量。在编组和解组请求和响应方面,XMLBeans 比 JAXB 快得多。

    【讨论】:

      【解决方案2】:

      这里有一个讨论类似问题的线程。看来他们对流行的序列化做了一些分析。

      How to serialize/deserialize complex java object quickly

      【讨论】:

      • 该线程建议 java 对象序列化的替代方案,而我需要 XML 序列化作为我的 Web 服务堆栈的一部分。所以我正在寻找一个轻量级的 JAXB 实现。