JAXB和XStream比較

這兩東東本質上是有差異的,JAXB稱爲OX binding工具,XStream應該算序列化工具,但OX binding工具也會marshall和unmarshall,因此包含了序列化這一部分。序列化工具不必定須要提供binding的功能。既然都玩序列化,那就簡單地比較一下它們兩在序列化方面的強弱吧。工具

JAXB:Toplink JAXB 10133,應該是JAXB 1.1標準 (取消了schema的validation功能)性能

XStream:1.3.1spa

數據長度:xml

類型ci

長度it

內容io

XStraemtable

351object

<com.oocl.frm.ws.sample.Employee>coding

 <name>Liufei</name>

 <age>40</age>

 <address>

    <street>Zhaojiabang</street>

    <country>China</country>

    <city>Shanghai</city>

    <doorNum>789</doorNum>

    <empName>Afka liu</empName>

 </address>

 <salary>20000.0</salary>

 <isActive>false</isActive>

 <sexy>F</sexy>

</com.oocl.frm.ws.sample.Employee>

Toplink JAXB

589(已經去掉了white space)

<?xml version="1.0" encoding="UTF-8"?>

<ns0:employee xsi:schemaLocation="http://www.oocl.com/frm/ws/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.oocl.com/frm/ws/jaxb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns0:name>Liufei</ns0:name><ns0:age>40</ns0:age><ns0:salary>20000.0</ns0:salary><ns0:sexy>F</ns0:sexy><ns0:isActive>false</ns0:isActive><ns0:address><ns0:street>Zhaojiabang</ns0:street><ns0:country>China</ns0:country><ns0:city>Shanghai</ns0:city><ns0:doorNum>789</ns0:doorNum><ns0:empName>Afka liu</ns0:empName></ns0:address></ns0:employee>

時間:序列化和反序列化1000000次。

類型

序列化(ms

反序列化(ms

XStraem

90148

135878

Toplink JAXB

34872

56557

結果對比:數據量XStream佔優點,時間性能上Toplink Jaxb佔明顯優點

總結(只從序列化功能角度看)

JAXB: 優勢

  • J2EE標準
  • 運行時間比XStream

缺點

  • 用起來不方便:須要把手動的把business object轉換成schema object,固然也能夠直接將schema object做爲business object,或者採用反射的方法。
  • 有必定的侷限性:須要schema或者annotation
  • 數據量稍大

XStream優勢:

  • 用起來方便
  • 不須要schema,拿過來就轉
  • 數據量稍小

缺點:

  • 非標準
  • 時間性能差
相關文章
相關標籤/搜索