Java 使用Xstream进行XML转换时的性能注意事项

Java 使用Xstream进行XML转换时的性能注意事项,java,xml,performance,jaxb,xstream,Java,Xml,Performance,Jaxb,Xstream,我正在对主要由web服务组成的Java应用程序进行评测。结果表明,大部分时间都花在转换XML的上 我目前正在使用XStream(版本1.3.1)进行转换。如果我升级版本,我会获得更好的性能吗?或者还有什么我可以使用的东西可以给我带来更好的性能(比如JAXB)?有一个专门为性能而设计的封送器,同时也符合术语mashaller。(然而,Xstream是一个序列化程序,因为它按约定输出,并且您不能调优通过使用映射文件等生成的XML。我并不反对Xstream) 马歇尔勒表演团几年前在新西兰惠灵顿开始。它

我正在对主要由web服务组成的Java应用程序进行评测。结果表明,大部分时间都花在转换XML的上


我目前正在使用XStream(版本1.3.1)进行转换。如果我升级版本,我会获得更好的性能吗?或者还有什么我可以使用的东西可以给我带来更好的性能(比如JAXB)?

有一个专门为性能而设计的封送器,同时也符合术语mashaller。(然而,Xstream是一个序列化程序,因为它按约定输出,并且您不能调优通过使用映射文件等生成的XML。我并不反对Xstream)

马歇尔勒表演团几年前在新西兰惠灵顿开始。它被称为JIBX。以下是网站:


它是Spring框架明确支持的封送器之一

最终,您需要创建一个适合您的用例的基准点,以确定哪个XML绑定库最适合您的用例。有太多的因素要宣布一个最终的赢家(即一个可能是超级快速的,直到它到达继承层次结构,一个超级快速处理继承,但在集合上会变慢)

在一个框架中,处理StAX或streams通常比处理DOM要快,因此如果您能以这种方式定位代码,您的情况会更好。此外,绑定框架通常利用较低级别的解析器,因此将JAXB与Woodstox结合使用可能会提高性能

JAXB与性能


JAXBContext
表示已处理的元数据,该类是线程安全的。如果只创建一次并重用它,您将看到性能上的好处。

是转换为XML,还是转换为XML并将其写入(缓慢的)网络?@millimoose只是转换为XML并将其转换回原样,XStream似乎同时支持DOM和StAX。可能需要检查哪个是默认值,然后切换到后者,看看这是否有帮助。