java序列化方式性能比较
来源:互联网 发布:新浪网络运营文职岗是 编辑:程序博客网 时间:2024/06/16 21:27
来源:http://john521.iteye.com/blog/1099574
有一个很不错的工具http://github.com/eishay/jvm-serializers/ ,可以用它来评测各种流行的java序列化反序列化工具,使用上也很简单。想试试该工具的,下载源码后参考起README操作即可。而我更关心的是,是各种工具的性能对比,以作选择的一个衡量标准,也就是http://github.com/eishay/jvm-serializers/wiki 的 图示和数据。本文也就简单转摘其图示,图示中的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等格式的序列化工具的评测。
- java序列化方式性能比较
- java序列化方式性能比较
- Java序列化框架性能比较
- Java序列化框架性能比较
- Java序列化框架性能比较
- Java序列化框架性能比较
- 几种 Java 序列化方案的性能比较
- java常用对象序列化对象性能简单比较
- java序列化、hessian和protostuff性能比较
- Java字符串各种连接方式性能比较
- Java字符串各种连接方式性能比较
- Java字符串拼接方式性能比较
- Java 字符串拼接方式性能比较
- 网络数据传输方式(序列化)比较
- java序列化之比较
- Java Map遍历方式方式及性能比较
- 各种 Java 的序列化库的性能比较测试结果
- Java序列化工具大全及性能比较
- nonatomic retain copy assign区别
- 在C#里面使用IsNumeric
- 使用分页方式读取超大文件的性能试验
- Iphone开发(十)简单的列表tableView与行的响应事件
- 雷锋微语录:长翅膀的不一定是天使
- java序列化方式性能比较
- 使用分层的 Selenium 框架进行复杂 Web 应用的自动测试
- ORACLE v$managed_standby字段及值解释
- 浅谈SQL Server中统计对于查询的影响
- 虚拟函数
- ArcSDE用户介绍(一)
- Struts2文件下载
- 测试两台服务器之间的网络带宽
- Ralink3070找不到信道12和13的解决方案