JAXB vs XStream

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

JAXB vs XStream 博客分类: java  

JAXB vs XStream

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

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

XStream1.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABB 机器人 DRVIO_1通信报警

ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人&#xff0c;从A地搬运到B地&#xff0c;到达B地后&#xff0c;机器人上电&#xff0c;报DRVIO_1通信故障&#xff0c;机器人进入故障停止模式。 DRVIO_1为LOCAL_GENERIC类型的ABB内部LOCAL总线类型的单元实例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目录结构 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 机器人 添加多任务

首先&#xff0c;需要启用多任务选项的控制器。 要做到这一点&#xff0c;创建一个新的机器人控制器RobotStudio站 - >选择机器人&#xff08;控制器菜单&#xff09; - >.................. - >系统生成器 - >选择控制器 - >修改...下一页 - >下一步 - >…

poj2594(二分图,最小路径覆盖变形)

Treasure ExplorationTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 7611 Accepted: 3126Description Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? …

【机器视觉】——相机镜头篇

目录 一、相关概念 1、相机 2、镜头 二、相关参数 1、相机参数 1)芯片尺寸

闭包(计算机科学)

在计算机科学中&#xff0c;闭包&#xff08;Closure&#xff09;又称词法闭包或函数闭包。是引用了自由变量的函数。这个被引用的自由变量将会和函数在一起。即使离开了创建它的环境也不例外。所以另一种关于闭包的说法&#xff1a;由函数和其引用相关的环境构成的实体。闭包在…

C语言小机器人

[cpp] view plaincopyprint? # include <stdio.h> # include <stdlib.h> # define MAXSTR 200 # define REBOT "小C说: " # define YOUR "您 说: " # define EXIT "-e\n" # define NOREPLY "我不知道你说什么呢…

分享12306抢票心得-终极秒杀思路篇

12306抢票的关键拼的就是整点出票的速度&#xff0c;快的几秒钟&#xff0c;慢的几分钟&#xff0c;本文提供终极抢票攻略&#xff0c;通过多线程扫描上万个CDN&#xff0c;来大幅度提升出票速度。准备一&#xff1a;需要了解CDN和切站的机制&#xff0c;请参考&#xff1a;分享…

JVM内幕:Java虚拟机详解

为什么80%的码农都做不了架构师&#xff1f;>>> 这篇文章解释了Java 虚拟机&#xff08;JVM&#xff09;的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件&#xff0c;第二章…

【机器视觉】——光源篇(分类、选型)

目录 ​ 一、光源相关知识 1、光的作用 2、光的颜色 二、光源的种类

ABB机器人 系统参数配置

系统参数用于定义系统配置并在出厂时根据客户的需要定义。 可使用 FlexPendant 或 RobotStudio Online 编辑系统参数。 此步骤介绍如何查看 系统参数配置。 操作 &#xff1a; 1. 在 ABB 菜单上&#xff0c;点击控制面板。 2. 点击配置。显示选定主题的可用类型列表。 3. 点…

MFC BCGControlBar 库 使用方法

安装 BCGControlBar 库到你的计算机&#xff1a; 解压缩 BCGControlBar.zip &#xff08;比如&#xff0c;到 c:\bcg 目录中&#xff09;把 c:\bcg\bin 增加到你的 path 环境变量中&#xff0c;运行 Visual C 并且打开 Tools | Options 对话框&#xff0c;切换到Directories 页…

四则运算2开发简介

四则运算2在四则运算1的基础之上&#xff0c;又添加了新的功能&#xff0c;但是我觉得四则运算2的难度比四则运算1增大了很多&#xff0c;我在编程的过程中&#xff0c;遇到的最大难度就是不知该如何更好的融合各个功能之间的关系。 写到现在&#xff0c;四则运算2主要实现了以…

ABB机器人的 备份与恢复

保存内容 备份功能可保存上下文中的所有系统参数、系统模块和程序模块。 备份内容 数据保存于用户指定的目录中。 默认路径可加以设置。 目录分为四个子目录&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用户设置的 ../backup &#xff08;根…

flask项目开发中,遇到http 413错误

在flask项目中&#xff0c;上传文件时后台报http 413 Request Entity Too Large 请求体太大错误&#xff01; 解决的2种方法&#xff1a; 1.在flask配置中设置 MAX_CONTENT_LENGTH的值; 如设置为20M ( MAX_CONTENT_LENGTH20*1024*1024) 这时小于20M的文件都可以上传 相关连接&…

【机器视觉】——畸变与矫正

目录 一、什么是畸变?畸变的原因是什么? 1、径向畸变(桶形畸变和枕形畸变)

ApplicationContextAware 接口

一、这个接口有什么用&#xff1f; 当一个类实现了这个接口&#xff08;ApplicationContextAware&#xff09;之后&#xff0c;这个类就可以方便获得ApplicationContext中的所有bean。换句话说&#xff0c;就是这个类可以直接获取spring配置文件中&#xff0c;所有有引用到的be…

Java之泛型练习

package cn.itcast.generics;import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet;/** 方法一&#xff1a;实现Comparable接口*/ //class Person implements Comparable<Person> {//实现Comparable接口&#xff0c;使得集合元素具备可比较…

ABB 配置文件

配置文件 配置文件是列出系统参数值的文本文件。 注意&#xff1a; 如果该参数指定默认值&#xff0c;那么就不会被列在 配置文件。 控制器中有六个配置区域&#xff0c;配置文件保存为后缀 .CFG文件。 配置文件默认保存在系统文件夹SYSPAR&#xff0c;例如.. \ MySystem\ …