2019独角兽企业重金招聘Python工程师标准>>>

JAXB vs XStream 博客分类: java

JAXB vs XStream

这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshall和unmarshall,所以包含了序列化这一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化,那就简单地比较一下它们两在序列化方面的强弱吧。

JAXB:Toplink JAXB 10133,应该是JAXB 1.1标准 (取消了schema的validation功能)

XStream:1.3.1

数据长度:

类型

长度

内容

XStraem

351

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

<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,拿过来就转
  • 数据量稍小

缺点:

  • 非标准
  • 时间性能差

http://www.blogjava.net/ldd600/archive/2009/03/04/257832.html

转载于:https://my.oschina.net/xiaominmin/blog/1599535

JAXB vs XStream相关推荐

  1. JAXB和XStream比较

    这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshall和unmarshall,所以包含了序列化这一部分.序列化工 ...

  2. java 中 Object XML 互转,最终选择Xstream

    前言 spring boot 2.0.0 RELEASE maven 3.5.0 项目中需要进行 Object 与 XML 的互转.为此尝试了几个互转工具,进行记录. 耗费了一天的时间,将Faster ...

  3. Drools 5.1.1(一)

    http://shikonglaike.iteye.com/blog/1236354 第一章欢迎 我总是和终端业务用户争论不休,理解规则和流程.最新规则和事件处理的区别.对此,在他们的意识中有这样的问 ...

  4. spring框架三层架构_Spring框架架构

    spring框架三层架构 这是Spring Framework Architecture的概述. 了解Spring Framework的各个组成部分如何组织以及如何相互联系. 如果您想了解什么是Spr ...

  5. jibx进行xml数据绑定的binging.xml配置

    1.给一个例子: <binding xmlns:ns1="http://vteba.com/service/xml/jibx" name="bind" p ...

  6. Spring OXM-Castor入门

    这里先介绍Castor基本的用法,详细介绍就请看后半部分. 基于maven构建工具,完成oxm测试至少需要4个文件:applicationContext.xml,mapping.xml,Cusomer ...

  7. Spring技术内幕:设计理念和整体架构概述

    为什么80%的码农都做不了架构师?>>>    程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深 ...

  8. java oxm_spring oxm入门(包含demo)

    O/X Mapper 是什么? Spring 3.0 的一个新特性是 O/X Mapper.O/X 映射器这个概念并不新鲜,O 代表 Object,X 代表 XML.它的目的是在 Java 对象(几乎 ...

  9. spring 3.0 OXM

    本文转载自http://www.ibm.com/developerworks/cn/xml/x-springXOM/ O/X Mapper 是什么? Spring 3.0 的一个新特性是 O/X Ma ...

最新文章

  1. VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零
  2. 3COM小型办公室有线局域网方案
  3. java swing form_在java swing中创建表单最简单的方法是什么?
  4. codeforces280 C. Game on Tree(期望)
  5. 运营管理整改报告范文_整改报告 反馈问题整改报告范文精选5篇
  6. 如何理解傅立叶级数、傅立叶变换公式?
  7. 华为当个pl怎么样_华为员工吐槽:画饼、忽悠、洗脑,有些pl、pm怎么可以那么坏?...
  8. js request 应用举例
  9. CentOS7 编译安装LNMP
  10. alexnet论文_【SOT】Siamese RPN++ 论文和代码解析
  11. json转换map多层嵌套问题
  12. python读取rtf文件_在python中将unicode文本输出到RTF文件
  13. Python三大神器之virtual使用
  14. html怎么画表格边框,WEB 制作1px边框表格的几种方法
  15. 计算机进去bios方式,电脑的BIOS在哪?各电脑进入BIOS的方法
  16. 钉钉调用新版待办任务
  17. 【yum】常见的yum命令
  18. Python 输出当前 时分秒 包含毫秒
  19. files函数提取文件名HTML,提取文件名时解析文件的问题os.listdir()为
  20. python计算某天距元旦的天数_Python:根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上?...

热门文章

  1. python语言的两种注释方法_python编程时添加中文注释的方法
  2. python暂停和恢复_python-线程的暂停, 恢复, 退出
  3. 埃尔米特(Hermite)插值
  4. 图像相似性搜索的原理
  5. oracle 自定义 聚合函数
  6. UVA572 Oil Deposits DFS求解
  7. 三元运算符运算(Day02)
  8. [bzoj4003][JLOI2015]城池攻占_左偏树
  9. 7-n!末尾有几个0
  10. 【从零开始】Python字符串的操作方法