首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kryo的核心技术是什么?

kryo的核心技术是什么?
EN

Stack Overflow用户
提问于 2013-11-21 15:50:10
回答 1查看 1.3K关注 0票数 3

克里奥非常快,而且很小。这里有什么秘密?

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 16:15:40

来自他们的网页

2.22版本修复了许多报告的问题,并提高了稳定性和性能。它还引入了许多新特性,特别是可以使用不安全的方法直接读取和写入对象内存。这是绝对最快的序列化方法,特别是对于大型原语数组

它使用直接字节码级访问字段- sun.misc.UnsafeASM库。甚至在引入不安全的使用之前,Kryo的速度就快了。一般的答案,我认为是,表现是他们的最高优先。Java的反射在谨慎使用时并不慢-即当java.lang.Fieldjava.lang.Method被缓存时。我建立了一个实验,用两个不同的比较器对一个数组进行排序--一个是使用直接字段访问,另一个是使用缓存字段。只有2倍的差异,这意味着在IO上下文中不明显。

FieldSerializer

默认情况下,大多数类最终将使用FieldSerializer。它本质上做的是手写的序列化,但它是自动完成的。FieldSerializer将直接赋值给对象的字段。如果字段是公共的、受保护的或默认的访问(包私有),则使用字节码生成实现最大速度(参见ReflectASM)。对于私有字段,使用setAccessible和缓存反射,这仍然是相当快的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20125546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档