zoukankan      html  css  js  c++  java
  • 数据序列化方式比较

    经过网上资料查证以及自身实际测试,对比了一下几种序列化方式:java序列化、json、avro、kryo、protobuff、protostuff,对5144条6KB左右数据进行测试结果

    序列化工具

    序列化时间(ms)

    反序列化时间(ms)

    平均每条记录大小(byte)

    java序列化

    225

    238

    6324

    json

    6831

    4629

    21444

    avro

    434

    509

    5995

    kryo

    171

    76

    5998

    Protobuff

    62

    43

    6005

    Protostuff

    52

    50

    6005

    从上述表格可以得出,除json外,其他序列化工具序列化后数据大小差距不大,但序列化/反序列化耗时上protobuff/protostuff有明显优势。故序列化框架在protobuff和protostuff中进行选择。

    Protostuff是基于Google protobuff技术的Java版本,直接使用原生的protobuff是需要数据结构的预编译过程,需要编写.proto格式的配置文件,再通过protobuff提供的工具翻译成目标语言代码,而Protostuff动态支持了protobuff的预编译的过程,可以直接使用普通java POJO进行序列化,简化编码。

    经过实测序列化性能相对原生protpbuff没有影响。

    由于Protostuff只支持Java实现,不过并未对序列化格式有做任何修改,所以Protostuff和protobuff可以共同使用。

  • 相关阅读:
    GridControl 绑定非绑定列
    AutoMapper
    ABP-TaskEver 路线图
    Angular--页面间切换及传值的四种方法
    知行合一,止于至善
    AutoFac 依赖注入--问题集
    【入门】依赖注入(DI)-开始
    利用JAVA生成二维码
    sqlserver如何关闭死锁进程.
    Hadoop/HBase 配置snappy压缩
  • 原文地址:https://www.cnblogs.com/jinniezheng/p/6383947.html
Copyright © 2011-2022 走看看