开发者社区 问答 正文

Kryo框架在处理定义了JDK自定义序列化方法的对象时有什么问题?

Kryo框架在处理定义了JDK自定义序列化方法的对象时有什么问题?

展开
收起
花开富贵111 2024-06-19 16:54:13 110 分享 版权
1 条回答
写回答
取消 提交回答
  • Kryo框架为了保证序列化的正确性,在遇到定义了writeObject/readObject等JDK自定义序列化方法的对象时,会调用JDK的ObjectOutputStream和ObjectInputStream进行序列化。这种方式存在性能差、数据膨胀以及引用表不一致等问题。具体来说,JDK序列化性能很差,会导致Kryo序列化性能大幅退化;JDK序列化结果很大,会导致Kryo序列化数据膨胀;同时,转发给JDK序列化的对象子图不会跟Kryo共享同一个引用表,如果该子图共享或循环引用了其它对象,则会出现重复序列化或递归栈溢出的问题。

    2024-06-19 17:38:27
    赞同 1 展开评论