2012-08-10 14 views
6

Używam XStream do konwersji XML na obiekty. Konwertuję duże xml. Napotkałem poniżej dwa stwierdzenia.Wydajność sterownika Xstream

XStream xstream = new XStream(new DomDriver()); 

XStream xstream = new XStream(new StaxDriver()); 

Ponieważ używam dużego xml do konwersji, który z nich daje lepszą wydajność? czemu?

Proszę o pomoc.

+0

co z BinaryStreamDriver? – guilhermecgs

Odpowiedz

3

Sterownik Staxdriver powinien działać lepiej, ponieważ wykorzystuje technologię parsera ściągania, która jest najszybszą technologią do parsowania xml i zużywa mniej pamięci, ponieważ dokument nie jest załadowany do pamięci, tak jak do domu.

+0

Domyślnie XStream używa XppDriver, który również używa parsera ściągania. W moich testach na prawdziwych danych produkcyjnych StaxDriver jest o 10% wolniejszy niż domyślny XppDriver XStp na serializacji i deserializacji. – Sergio

2

Sterownik StaxDriver będzie stopniowo analizować dane, dzięki czemu będzie bardziej wydajny. Działa tylko z analizatorami Stax. Jeśli chcesz użyć parsera DOM, musisz użyć DomParser.