Hi Lethal,

Lethal Possum wrote:

> Hello Jörg,
> 
> Thank you for your quick and clear answer.
> 
> I am trying to migrate an existing code base from JAXB to XStream, to
> compare the unmarshalling speed and the ease of use of both frameworks.

Well, I guess JAXB will process the XML faster, just because it uses 
generated stubs to read/write the predefined XML. However, biggest drawback 
is, that you will have to generate different stubs for different versions of 
your schema and it gets even more difficult, if you have to process multiple 
XML versions of your schema without knowing which one in advance. Here you 
can provide custom converters in XStream that can read old and new format at 
the same time.

> Currently our JAXB annotations use the accessors. I wanted to do the same
> in XStream in case some of the accessors have some extra logic in it and
> also to make the benchmark as fair as possible.
> 
> I will review our accessors and if none of them do anything special, I
> guess accessing the fields directly is not a big issue.

One general advice: Instantiating an XStream instance and setting it up is a 
very expensive operation. Therefore you should do this only once and then 
reuse the prepared instance every time. You may use this instance even 
concurrently since marshalling/unmarshalling is threadsafe.

If you have to optimize extremely for speed, you should create custom 
converters for your objects instead of using the default ones based on 
reflection. This will have a similar effect compared to the JAXB stubs.

Cheers,
Jörg


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to