Java kryo的核心技术是什么?

Java kryo的核心技术是什么?,java,serialization,kryo,Java,Serialization,Kryo,它真的又快又小。这里的秘密是什么 我已经深入研究了它的代码一段时间,但仍然需要一些指导 谢谢 来自: 2.22版本修复了许多报告的问题,并提高了稳定性和可用性 演出它还引入了一些新特性,最显著的是 它可以使用不安全的方法直接读取和写入对象内存。这 是进行序列化的绝对最快的方法,尤其是对于大型 基本数组 它使用字节码级别的直接访问字段-sun.misc.Unsafe或。Kryo甚至在引入不安全使用之前就已经很快了。我认为,一般的答案是,性能是他们的最高优先级。当仔细使用Java时,Java的反射并

它真的又快又小。这里的秘密是什么

我已经深入研究了它的代码一段时间,但仍然需要一些指导

谢谢

来自:

2.22版本修复了许多报告的问题,并提高了稳定性和可用性 演出它还引入了一些新特性,最显著的是 它可以使用不安全的方法直接读取和写入对象内存。这 是进行序列化的绝对最快的方法,尤其是对于大型 基本数组

它使用字节码级别的直接访问字段-
sun.misc.Unsafe
或。Kryo甚至在引入不安全使用之前就已经很快了。我认为,一般的答案是,性能是他们的最高优先级。当仔细使用Java时,Java的反射并没有那么慢,即当
Java.lang.Field
Java.lang.Method
被缓存时。我做了一个实验,用两个不同的比较器对数组进行排序——一个使用直接字段访问,另一个使用缓存字段。只有2倍的差异,这意味着在IO的上下文中不明显

默认情况下,大多数类最终将使用
FieldSerializer
。信息技术 从本质上讲,它实现了手写序列化的功能,但确实如此 自动地
FieldSerializer
直接指定对象的 田地如果字段为公共、受保护或默认访问 (包专用),字节码生成用于最大速度(请参阅 反射)。对于私有字段,设置可访问和缓存的反射 已使用,但速度仍然相当快。