
XBlink1.0.0版发布:更轻更快更好用
简介:
一个轻量级的通用型序列化反序列化工具
特点:
- 轻 -- 当前版本,无需引入任何第三方jar包,JDK1.5以上适用,大小总共120K。
- 易 -- 简单易用,基本上只需调用一个方法就能帮你搞定问题。
- 简 -- 无需配置Mapping文件,采用了基于注解的方式,对原有程序基本不造成任何负面影响,最大程度的降低耦合。
- 学 -- 代码量少,结构简单,易于研究学习。
- 通 -- 采用全新架构,理论上支持所有以文本格式记录信息的文件的序列化工作。本产品将默认支持XML,JSON与YAML格式。
- 快 -- 性能优秀,在速度上已经全面超越XStream,是目前最快的XML序列化工具。
XBlink当前情况:
该版本目前仅提供了XML的序列化支持,后续版本将支持JSON与YAML格式。
相比之前的版本,采用了新架构,jar包体积稍胖(比XStream还是小很多的),功能与性能上有了大幅提高,并提供了更多的扩展机制。
新版本的特性:
- 精简后的注解,简化的API。
- 支持无注解无配置,直接对现有系统中的类进行序列化。
- 支持自定义转换器,定制你自己的输出格式。
- 支持文本格式压缩,以适应开发与生产环境。
- 支持对生成的文件加入注释,不影响其反序列操作。
- 支持替换底层输入输入器,你完成可以制造出个性化的“XML”。
使用示例:
定义两个类,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
}
实例化一个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);
注册本次序列化使用的类(这里是为了生成的文件格式更加适合阅读),这一步可以省略。
XBlink.registerClassesToBeUsed(new Class[] { Person.class, PhoneNumber.class });
调用XBlink的序列化方法。
System.out.println(XBlink.toXml(joe));
输出结果。
<?xml version="1.0" encoding="UTF-8"?>
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
调用XBlink的反序列化方法。
// 这里的xml就是刚才序列化生成的字符串
Person anthorJoe = (Person) XBlink.fromXml(xml);
怎么样,是不是如此简单!
性能测试:
常用的XML序列化框架有XStream,Simple。
在速度与易用性上,XStream远远好于Simple,所以XBlink就一直以XStrem作为目标,无视Simple的存在(吐槽下,因为它是在是太难用啦,不信看这里)。
下面是基于上面那个Person示例的测试结果。
序列化比较:
序列化次数 |
XBlink |
XStream |
1次 |
0 秒, 0 毫秒, 269 微秒 |
0 秒, 0 毫秒, 562 微秒 |
10次 |
0 秒, 2 毫秒, 2182 微秒 |
0 秒, 5 毫秒, 5426 微秒 |
100次 |
0 秒, 21 毫秒, 21454 微秒 |
0 秒, 37 毫秒, 37727 微秒 |
1000次 |
0 秒, 95 毫秒, 95380 微秒 |
0 秒, 116 毫秒, 116551 微秒 |
10000次 |
0 秒, 436 毫秒, 436216 微秒 |
0 秒, 623 毫秒, 623156 微秒 |
反序列化比较
反序列化次数 |
XBlink |
XStream |
1次 |
0 秒, 0 毫秒, 557 微秒 |
0 秒, 0 毫秒, 767 微秒 |
10次 |
0 秒, 4 毫秒, 4231 微秒 |
0 秒, 5 毫秒, 5680 微秒 |
100次 |
0 秒, 21 毫秒, 21346 微秒 |
0 秒, 34 毫秒, 34830 微秒 |
1000次 |
0 秒, 84 毫秒, 84463 微秒 |
0 秒, 162 毫秒, 162964 微秒 |
10000次 |
0 秒, 616 毫秒, 616956 微秒 |
1 秒, 1282 毫秒, 1282416 微秒 |
相关测试用例请看http://code.google.com/p/xblink/source/browse/trunk/test/performance/testcase/demo/PersonTest.java
通过上面的对比,可以发现XBlink在性能上比XStream有大概30%-120%的提升,速度全面超越。
基本上现有的框架中XBlink是最快的。
说明:
终于XBlink发布了,算是还债了,呜呜呜。
虽然目前已经取得了一定的成绩,但是在稳定性,易用性与性能上还有很大的提高余地。
欢迎各位朋友下载,试用并提出您宝贵的意见与发现的Bug,ME将尽力尽快的改进,使其更加好用。
总之,求下载,求使用,求反馈,求Bug,求虐,求包养...
最后:
更多详情请关注官网:http://code.google.com/p/xblink/
下载地址:http://code.google.com/p/xblink/downloads/detail?name=XBlink-1.0.0.zip&can=2&q=
PS:由于时间仓促,官网上关于1.0.0版的文档还在陆续编写中,请持续关注,谢谢。
分享到:
相关推荐
// ****************************** 通用反序列化 ****************************** /** * fromAny意味着可以从任意格式的文件中得到你想要的那个对象。 * * XBlink最NB的反序列方法,生成你需要的对象...
实训商业源码-深蓝健身房瑜伽馆行业小程序V4.5.0全开源解密版-毕业设计.zip
毕业论文-Z-BlogPHP海盗导航主题模板-整站商业源码.zip
基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指
实训商业源码-在线考试系统源码 学生教师用-毕业设计.zip
实训商业源码-自采集壁纸源码小韩美化版-毕业设计.zip
ANSYS nCode DeaignLife 高级疲劳分析技术.pdf
毕业论文-活动报名 4.1.1+年卡 1.1.3-整站商业源码.zip
BIM和PLM技术在市政工程三维设计中的应用.pdf
内容概要:本文档详细介绍了Python反爬虫技术的各种应对策略,包括基础和高级方法。基础部分涵盖User-Agent伪装、IP代理池、请求频率控制等,其中涉及使用fake_useragent库随机生成User-Agent、设置HTTP/HTTPS代理、通过随机延时模拟正常访问行为。动态页面处理方面,讲解了Selenium和Pyppeteer两种自动化工具的使用,可以用于加载并获取JavaScript渲染后的网页内容。对于验证码问题,提供了OCR识别简单验证码、Selenium模拟滑块验证码操作以及利用第三方平台破解复杂验证码的方法。登录态维持章节介绍了如何通过Session对象保持登录状态,并且演示了Cookie的保存与读取。数据加密对抗部分探讨了JavaScript逆向工程和WebAssembly破解技巧,如使用PyExecJS执行解密脚本。最后,高级反爬绕过策略中提到了WebSocket数据抓取和字体反爬解析,确保能够从各种复杂的网络环境中获取所需数据。 适合人群:有一定Python编程经验,从事数据采集工作的开发人员。 使用场景及目标:①帮助开发者理解并掌握多种反爬虫绕过技术;②为实际项目中的数据抓取任务提供有效的解决方案;③提高爬虫程序的成功率和稳定性。 其他说明:在学习过程中,建议结合具体案例进行实践,同时注意遵守网站的robots协议及相关法律法规,合法合规地进行数据采集活动。
毕业论文-叮咚-外卖餐饮小程序6.1.5 前端+后端-整站商业源码.zip
实训商业源码-抢购秒杀系统V1.0.2 安装更新包-毕业设计.zip
实训商业源码-智答-更好用的语音问答6.0.4-毕业设计.zip
毕业论文-发卡-整站商业源码.zip
Ayla NetWorks:全面探索物联网数据安全和数据隐私.pdf
毕业论文-活动报名小程序-整站商业源码.zip
jquery-1.11.0.min.js(jQuery下载)
实训商业源码-易优cms建筑项目施工装饰工程公司网站模板源码-毕业设计.zip
实训商业源码-新麦客服 1.2.8-毕业设计.zip