开发者社区> bboss> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

bbossgroups 对象xml序列化/反序列化性能测试

简介: 本文探讨开源项目bbossgroups 中对象xml序列化/反序列化性能测试。 1.测试和源码工程下载地址 bboss soa工程源码下载(解压后子目录bboss-soa工程) bbossgroups soa 测试用例java代码下载(包含在bboss soa的test目录下) TestSerializable.
+关注继续查看
本文探讨开源项目bbossgroups 中对象xml序列化/反序列化性能测试。

1.测试和源码工程下载地址
bboss soa工程源码下载(解压后子目录bboss-soa工程)
bbossgroups soa
测试用例java代码下载(包含在bboss soa的test目录下)
TestSerializable.java

2.用例使用代码
2.1 定义两个类,Person与PhoneNumber
public class Person {   
    private String firstname;   
    private String lastname;   
    private PhoneNumber phone;   
    private PhoneNumber fax;   
    // ... constructors and methods   
}   
  
public class PhoneNumber {   
    private int code;   
    private String number;   
    // ... constructors and methods   
}  

public class Person {
	private String firstname;
	private String lastname;
	private PhoneNumber phone;
	private PhoneNumber fax;
	// ... constructors and methods
}

public class PhoneNumber {
	private int code;
	private String number;
	// ... constructors and methods
} 


2.2 实例化一个Person对象
PhoneNumber phone = new PhoneNumber();   
phone.setCode(123);   
phone.setNumber("1234-456");   
  
PhoneNumber fax = new PhoneNumber();   
fax.setCode(123);   
fax.setNumber("9999-999");   
  
Person joe = new Person();   
joe.setFirstname("Joe");   
joe.setLastname("Walnes");   
joe.setPhone(phone);   
joe.setFax(fax);  


2.3 序列化接口调用
String xml = ObjectSerializable.convertBeanObjectToXML("person",joe,Person.class);


2.4 反序列化接口调用
Person person = ObjectSerializable.convertXMLToBeanObject("person", xml, Person.class);


3.测试用例执行结果

3.1 序列化耗时统计
执行bboss beantoxml 1次,耗时:0毫秒
执行bboss beantoxml 10次,耗时:0毫秒
执行bboss beantoxml 100次,耗时:16毫秒
执行bboss beantoxml 1000次,耗时:62毫秒
执行bboss beantoxml 10000次,耗时:266毫秒

和xstream的序列化耗时对比(基于同样的测试数据和测试环境)
执行XStream beantoxml 1次,耗时:0毫秒
执行xtream beantoxml 10次,耗时:0毫秒
执行xtream beantoxml 100次,耗时:63毫秒
执行xtream beantoxml 1000次,耗时:140毫秒
执行xtream beantoxml 10000次,耗时:891毫秒


3.2 反序列化耗时统计
执行bboss xmltobean 1次,耗时:0豪秒
执行bboss xmltobean 10次,耗时:31毫秒
执行bboss xmltobean 100次,耗时:250毫秒
执行bboss xmltobean 1000次,耗时:1203毫秒
执行bboss xmltobean 10000次,耗时:8438毫秒

和Xstream反序列化耗时对比(基于同样的测试数据和测试环境)
执行XStream xmltobean 1次,耗时:0豪秒
执行xStream xmltobean 10次,耗时:0毫秒
执行xStream xmltobean 100次,耗时:62毫秒
执行xStream xmltobean 1000次,耗时:188毫秒
执行xStream xmltobean 10000次,耗时:1344毫秒

从运行测试用例的效果来看,bboss序列化耗时情况还可以,效率比XStream要高出很多;但是bboss反序列化比xStream的反序列化要慢一些,还需进一步优化。

4.Person对象序列化输出的xml串
<?xml version="1.0" encoding="gbk"?>
<properties>
	<property name="person" class="org.frameworkset.soa.xblink.Person">
		<property name="fax" class="org.frameworkset.soa.xblink.PhoneNumber">
			<property name="code" soa:type="int" value="123" />
			<property name="number" soa:type="String"><![CDATA[9999-999]]></property>
		</property>
		<property name="firstname" soa:type="String"><![CDATA[Joe]]></property>
		<property name="lastname" soa:type="String"><![CDATA[Walnes]]></property>
		<property name="phone" class="org.frameworkset.soa.xblink.PhoneNumber">
			<property name="code" soa:type="int" value="123" />
			<property name="number" soa:type="String"><![CDATA[1234-456]]></property>
		</property>
	</property>
</properties>


5.测试环境
联想thinkpad sl400
OS 32位windows xp professional sp3
内存2G
cpu:
型号 Intel(R) Core(TM)2 Duo T5870
主频 2GHz

用例运行工具:myeclipse 8.0
jdk 1.5.0_06


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C#复杂XML反序列化为实体对象两种方式 (上)
C#复杂XML反序列化为实体对象两种方式
0 0
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
0 0
如何加速XML反序列化(精简框架集2.0SP1,WinCE4.2) -- 寻求微软技术支持记
其实这个问题在2007/3/13 就提交到了微软技术支持,但直到今天,对这个问题还没有一个完美的结果(他们最好的建议就是,自己解析XML文件),只好请求微软的技术支持把这个问题close掉
632 0
+关注
bboss
热衷开源,主要开源作品:开源框架bboss,bboss session,bboss 序列化等 bboss特色:http://yin-bp.iteye.com/blog/1080824
文章
问答
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
超大规模性能测试的云端方案及案例分享
立即下载
超大规模性能测试的云端解决方案及案例分享
立即下载
低代码开发师(初级)实战教程
立即下载