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可以共同使用。

  • 相关阅读:
    将本地sql文件导入到mysql中
    eclipse注释乱码问题
    导入import com.sun.image.codec.jpeg.JPEGCodec出错
    cmd启动和停止tomcat
    Tomcat修改端口
    ==和equals
    多态
    关键字——this,super,static,final
    方法重载、方法重写、四种权限修饰、JavaBean、代码块
    异常
  • 原文地址:https://www.cnblogs.com/jinniezheng/p/6383947.html
Copyright © 2011-2022 走看看