- Kryo序列化后的数据相比Hessian小很多。
- Hessian使用固定长度存储int和long,而kryo使用变长的int和long保证这种基本数据类型序列化后尽量小,实际应用中,很大的数据不会经常出现。
- Kryo进行序列化的时候,需要传入完整类名或者利用 register() 提前将类注册到Kryo上,其类与一个int型的ID相关联,序列中只存放这个ID,因此序列体积就更小,而Hessian则是将所有类字段信息都放入序列化字节数组中,直接利用字节数组进行反序列化,不需要其他参与,因为存的东西多处理速度就会慢点。
- Kryo使用不需要实现Serializable接口,Hessian则需实现。
- Kryo数据类的字段增、减,序列化和反序列化时无法兼容,而Hessian则兼容,Protostuff是只能在末尾添加新字段才兼容。
- Kryo和Hessian使用涉及到的数据类中必须拥有无参构造函数。
- Hessian会把复杂对象的所有属性存储在一个Map中进行序列化。所以在父类、子类存在同名成员变量的情况下,Hessian序列化时,先序列化子类,然后序列化父类,因此反序列化结果会导致子类同名成员变量被父类的值覆盖。
- Kryo不是线程安全的,要通过ThreadLocal或者创建Kryo线程池来保证线程安全,而Protostuff则是线程安全的。
- Protostuff和Kryo序列化的格式有相似之处,都是利用一个标记来记录字段类型,因此序列化出来体积都比较小。
Protostuff字段序列化格式
详细解决方案
Hessian、Kryo、Protostuff序列化使用区别
热度:30 发布时间:2023-12-25 08:18:02.0
相关解决方案
- com.caucho.hessian.client.HessianConnectionException: 500解决方法
- 几种通信协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service
- Hessian 调用webservice解决方法
- com.caucho.hessian.client.HessianConnectionException: 500,该怎么处理
- 强烈推荐应用 Hessian/Burlap 作为J2EE分布式系统内
- com.caucho.hessian.client.HessianProxyFactory 是哪个jar包的?该怎么处理
- org.springframework.remoting.RemoteAccessException: Cannot access Hessian
- 经过byte数组简单分析Java序列化、Kryo、ProtoBuf序列化
- dubbo Fail to decode request due to: com.alibaba.com.caucho.hessian.io.HessianProt
- 《itk实用demo》-Hessian
- 【Java.ThirdParty】序列化框架性能对比(kryo、hessian、java、protostuff)
- Kryo 进阶学习:数据的压缩与加密
- 【数学原理】Hessian Matrix
- RPC、GRPC、HTTP、REST、SOAP、RMI、HESSIAN
- hessian 文件上传失败问题解决
- Hessian、Kryo、Protostuff序列化使用区别
- Hessian-Affine extractor and the SIFT descriptor
- RMI、Hessian、Burlap、Httpinvoker、WebService的比较
- 【优雅代码】12-hessian、kryo、json序列化对比
- Kryo:快速、高效的序列化框架
- java.io.IOException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 110