问题一:什么是Fury?
什么是Fury?
参考回答:
Fury是一个基于JIT动态编译的高性能多语言原生序列化框架,它支持Java、Python、Golang、C++、JavaScript等多种语言,并提供全自动的对象多语言/跨语言序列化能力。相比于其他框架,Fury能够提供最高20~200倍的性能。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654735
问题二:为什么业界出现了除JDK自带序列化之外的框架,如hessian和kryo?
为什么业界出现了除JDK自带序列化之外的框架,如hessian和kryo?
参考回答:
由于JDK自带的序列化性能较差,业界出现了如hessian和kryo等框架来加速Java对象的序列化。这些框架能够高效地序列化大部分Java对象。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654736
问题三:hessian和kryo等框架有什么局限性?
hessian和kryo等框架有什么局限性?
参考回答:
hessian和kryo等框架虽然能提高序列化性能,但当Java对象实现了writeObject/readObject/writeReplace/readResolve等JDK自定义序列化方法时,这些框架无法处理。因为这些方法可能包含用户定义的任意逻辑,为了保证序列化的正确性,这些自定义逻辑需要以符合JDK序列化的方式执行,这时用户只能选择JDK自带的序列化框架,从而牺牲性能。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654737
问题四:Fury是如何解决JDK序列化性能问题的?
Fury是如何解决JDK序列化性能问题的?
参考回答:
从0.9.2版本开始,Fury完整实现了整套JDK序列化协议,兼容所有JDK自定义序列化行为。这样,在任意场景下,Fury都能避免使用JDK自带的序列化,从而保证高效的序列化性能。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654738
问题五:JDK序列化过程中,如果对象定义了writeReplace方法,会发生什么?
JDK序列化过程中,如果对象定义了writeReplace方法,会发生什么?
参考回答:
在JDK序列化过程中,如果对象定义了writeReplace方法,序列化会首先调用该方法。然后,使用该方法返回的对象引用取代引用表之前记录的引用。如果返回的对象类型不变且仍包含writeReplace方法,则该方法会被忽略,进入正常的writeObject/writeExternal流程。若返回类型改变,则会循环调用writeReplace方法。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654739