有什么方法可以加速JAXB编组?

时间:2012-05-14 15:19:54

标签: xml jaxb schema marshalling

有没有办法加快对 JAXB Marshaller.marshal(Object, OutputStream)的调用?

我正在研究的项目是使用JAXB [un]用相当大的XML模式编组对象。呼叫someJaxbMarshaller.marshal(results, out)需要2秒才能完成。其他一切(JPA提取,空间过滤,相当多的其他逻辑)只需要大约1秒钟。因此,JAXB的使用使我的请求响应时间增加了三倍。我正在缓存JAXBContext和Marshaller对象,以尽可能加快速度。只有实际的编组才会让我失望。有什么建议吗?

我正在使用 JAXB 2.2.3u1 ,与 JAX-WS 2.2.3 捆绑在一起。较新的版本似乎破坏了多个东西,因此我们被锁定到该版本的JAXB(覆盖包含Java的 JAX-WS 2.2.5 ,它使用 JAXB 2.2.4u1 - 我们无法使用它,因为它会在加载时抛出NullPointerException。我们也在 JDK 1.3.0_30 ,这是在 Eclipse Indigo 中运行的。我看到了使用Woodstox的建议,但是 JAX-WS 2.2.3 已经包含了它。我尝试用最新版本交换它,但是减慢了编组速度约0.2秒。删除Woodstox的性能与使用JAX-WS附带的版本完全相同。

支持正在编组的对象的架构大小约为 5 MB 。 JAXB生成的实际XML文档大小为 117 KB

0 个答案:

没有答案