博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java序列化方式性能比较
阅读量:5299 次
发布时间:2019-06-14

本文共 1105 字,大约阅读时间需要 3 分钟。

来源:

有一个很不错的工具 ,可以用它来评测各种流行的java序列化反序列化工具,使用上也很简单。想试试该工具的,下载源码后参考起README操作即可。而我更关心的是,是各种工具的性能对比,以作选择的一个衡量标准,也就是 的 图示和数据。本文也就简单转摘其图示,图示中的java-manual指的是根据对象(数据)格式手工操作(当然是最快的,但不具有通用性),java- buildin-in就是内置的序列化方式(ObjectOutputStream、ObjectInputStream),其他工具的使用版本可以查看 其wiki。

1、Total Time (“total”)

创建一个对象,将其序列化成一个字节数组,然后再反序列化成一个对象。

2、Serialization Time (“ser”)

创建一个对象,将其序列化成一个字节数组。

3、Deserialization Time (“deser+deep”)

相比于序列化,反序列化更耗时。为了更公平的比较,jvm-serializers在反序列化测试时访问了反序列化得到的对象的所有字段(也就是deep的含义),因为部分工具反序列化时“偷懒”而没有做足工作。

4、Serialized Size (“size”)

序列化数据的大小,这个大小会依赖于使用的数据。

5、Serialization Compressed Size (“size+dfl”)

使用java内置的DEFLATE(zlib)压缩的序列化数据的大小。

6、Object Creation Time (“create”)

对象创建耗时很短(平均100纳秒)所以通常的比较没什么意义。不过,不同工具创建的对象在表现上会有不同。有的工具只是创建普通的java类,你可以直接访问其字段,而有的使用get/set方法,有的使用builder模式。

分析这些对比,java内置的序列化方式性能很差(这才催生了各种序列化工具)。在这些工具中,protostuff表现极为出色,盖过了名头响亮 的protobuff和thrift。通用格式中,json要比xml强不少,而不同工具对同样格式的性能表现也有差别,这也给了选择工具的一个指导。另 一个值得一提的是bson,尽管jvm-serializers没有包含它,相信性能上应该不错。也可以参考jvm-serializers已有工具评测 代码的实现,添加比如处理bson、php等格式的序列化工具的评测。

转载于:https://www.cnblogs.com/javaexam2/archive/2012/05/16/2632699.html

你可能感兴趣的文章
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
laravel
查看>>
installing the matplotlib via pip in the enviroment dos
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>
Quartus II 中常见Warning 原因及解决方法
查看>>
高德地图 – 1.问题集锦
查看>>
php中的isset和empty的用法区别
查看>>
Android ViewPager 动画效果
查看>>
Android UI-仿微信底部导航栏布局
查看>>
MySQL 第六天
查看>>
python 笔记一
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
Spring 自动装配;方法注入
查看>>
浏览器的判断;
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
uva 10791
查看>>