Convert是个重复造轮子的组件,却是个飞速的轮子。Redkale之所以重复造轮子主要追求性能和需要与网络数据的序列化很好的结合(Convert与ByteBuffer的结合)。 Convert在API设计思路上也与其他同类型的框架不一样,配置与序列化方法是分开的,大部分场景下配置项是固定的,因此不同的配置会动态生成对应的处理类以保证性能。
从包结构可以看出,Convert分三层:序列化与反序列化的抽象基础包;JSON包、BSON包。即使boolean、int、String这种基础数据类型都不是包含在Convert基础包中。以下是详细的结构图:
从上图可以看出,JSON与BSON是Convert基础包的实现,主要是实现Reader与Writer类。若需要实现XML格式的序列化,可以以JSON为参考自己编写。对于不是内置(ext子包下的数据类型)的且没有自定义处理(Encoder、Decoder)的数据类型, Convert会动态生成ObjectEncoder、ObjectDecoder对象。
Convert 的性能
一切不谈性能的框架都是在耍流氓!下面以JSON为例,与其他主流的JSON框架做个简单的性能比较(测试环境: DELL的普通笔记本),fastjson一直号称是Java性能最好的JSON解析框架,其使用Benchmark是 https://github.com/eishay/jvm-serializers/wiki,Redkale根据该数据编写了MediaContent类。实例由MediaContent.createDefault()方法所得。
由上图第一份报告看出,以MediaContent对象进行比较,fastjson的反序列化性能是最好的,gson性能最差。redkale、fastjson、jackson在序列化方面差距不大。第二份报告的测试对象是将第一份的MediaContent对象中所有的数值改成负数进行测试的,可以看出fastjson对于负数的处理性能很差,只是比gson稍强。第三份报告的测试对象是ConvertRecord对象,该对象的特点是包含int[]、long[]、List、Map数据。从结果可以看出fastjson的反序列化性能最差。redkale与jackson一直保持高性能。
综合起来看,Redkale的Convert性能是最好的。数据相差50毫秒以下的差距基本可以忽略,因为每次测试的结果会上下波动几十毫秒。
相关推荐
《TeeChart应用技术详解》-屈景辉-源代码-07-11章
路由 技术详解--路由器POS接入.docx
02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构...
详解PELCO-D、PELCO-P协议中文资料,适用于软件编程.
《嵌入式Linux系统开发技术详解--基于ARM》是一本深度探讨嵌入式系统开发的专业书籍,主要聚焦在使用Linux操作系统在ARM架构上的应用。ARM(Advanced RISC Machines)是广泛应用在嵌入式领域的处理器架构,以其高...
红帽集成Xen虚拟化化技术详解PPT-PowerPoin.pptx
嵌入式Linux系统开发技术是IT领域中的一个重要分支,尤其在物联网、智能家居、自动驾驶等前沿...提供的"嵌入式Linux系统开发技术详解--基于ARM(完整版)"PDF文档应涵盖了这些领域的详细内容,是学习和实践的宝贵资源。
《uC-GUI图形界面开发工具详解》 uC-GUI是一个高度优化、轻量级的图形用户界面库,专为嵌入式系统设计。这个压缩包包含的三个关键工具——uC-GUI-View、uC-GUI-BitmapConvert和uC-GUI-FontConvert-Demo,是uC-GUI...
Tomcat+java+web+开发技术详解-孙卫琴-第二版.
Tomcat与java web 开发技术详解-孙卫琴-第二版 这是271-540 Tomcat与java web 开发技术详解-孙卫琴-第二版 内容详细,清晰, javaweb必备
**echarts-convert脚本详解** `echarts-convert`是一个专门为ECharts图表库设计的脚本工具,它主要用于帮助开发者将ECharts的配置项转换为更易读、易维护的代码结构。ECharts是一款由百度开发的开源JavaScript图表...
高中地理经典学习方法,高中地理学习方法技巧详解------.pdf
Oracle RAC核心技术详解-高清-完整目录-2015年10月。。
WINDOWS黑客编程技术详解-配套资源
《Tomcat与Java Web开发技术详解》是孙卫琴老师撰写的一本深入解析Java Web开发和Tomcat服务器的著作,其第二版进一步更新了内容,提供了更为详尽的指导。这本书针对初学者和有一定经验的开发者,旨在帮助读者掌握...
学习网络程序设计-03-winsock编程详解-udp通信编程-v.ppt
序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。序列化和反序列化最主要的作用有:1...
### 序列化与反序列化详解 #### 一、概念理解 序列化与反序列化是编程领域中非常重要的技术之一,它们主要用于将对象的状态转换为可以存储或传输的形式,以便于对象状态的持久化或者跨进程传输。具体而言: - **...
互联网行业KPI绩效考核明细详解--设计师-绩效考核评定表