![]() |
1
17
有一个 bug report 和一个 discussion thread . Kryo附带的DateSerializer在大小方面比发布在SO上的SimpleSerializer实现稍微有效一些,因为它使用了为正值优化的lonserializer。 编辑:我忘了回答原来的问题。我相信Kryo至少用于一些生产系统。在这篇文章中有提到, Jive SBS cache redesign: Part 3 . 在 Destroy All Humans video here ). 不是直接的回答,但你可以浏览 Kryo source 和/或 javadocs . 检查Kryo类上的read*和write*方法,然后查看Serializer类。这真是图书馆的核心。 |
![]() |
2
23
我会试着回答我自己的问题(Kyro还是很新的!)。 我们使用 Restlet framework . 这些都是由通常构建在基于Restlet的客户机库之上的web服务客户机使用的。在服务器和客户机之间来回发送的表示包括XML(使用 XStream serialization library Jackson Java Object Serialization 从昨天开始, Kryo . 所以我们可以做一些比较。 kryo1.0.1看起来相当稳定。一旦我真正了解了如何使用API,我发现唯一真正的问题是默认的java.util.Date序列化程序似乎将日期扭曲到了过去的几个月。我只需要提供我自己的覆盖:
但这是我目前发现的唯一可能的问题。我们有一组javabean,它们有String、Float、Integer、Long、Date、Boolean和List字段。 这里有一些粗略的基准。首先,我对描述一个电视节目的对象层次结构进行了100000次序列化和反序列化(也就是说,对它进行了100000次深度复制)。速度是:
接下来,我还序列化了2000个电视节目描述和计数字节的目录:
我还发现注册序列化程序非常重要:
如果我不这样做,序列化的大小几乎是原来的两倍,速度可能慢了40%。 我们还使用这四种序列化方法中的每种方法对几个web服务进行了完整的端到端测试,测试还表明Kryo的运行速度比其他方法快。 总之,Kryo看起来相当健壮。我将在我们的代码库中保持对它的支持,随着我们对它的经验积累,我希望在更多的地方使用它。为Kryo团队干杯! 更新(3/9/2011): 我终于想到@StaxMan的建议,试试jackson1.6的二进制“微笑”序列化程序。使用Jackson 1.6和Kryo 1.04,我对一个稍有不同的电视节目对象层次结构进行了100000次深度复制(序列化/反序列化):
这个测试与宏级测试不匹配,在宏级测试中,我在一个restweb服务中尝试了不同的序列化程序,该服务提供了许多这样的对象。总体系统吞吐量支持@StaxMan对性能的直觉:
|
|
3
4
Kryo是雅虎S4(简单可扩展流媒体系统)项目的一部分。据我所知,S4还没有生产。 |
![]() |
4
2
在…的帮助下 上面的回复和评论我在这个页面上找到了关于Kryo日期序列化问题的更详细的解释: http://groups.google.com/group/kryo-users/browse_thread/thread/91969c6f48a45bdf/ kryo.register(Date.class,new DateSerializer()); 我希望这能帮助别人。 |
![]() |
5
1
Kryo的最新版本在一些极端情况下有一些竞争条件,运行在Java的ns-3模拟器接口上。如果没有问题,可能会要求开发人员提交我的一些更改。 |
![]() |
6
1
Apache Storm用它来 serialization 所以是的,它必须是相当稳定的,因为风暴是由 several huge companies ,即Twitter和Spotify。 |
![]() |
7
1
kryo2.x也被muleeb使用,因此在生产中被广泛使用。 |
![]() |
8
1
|
![]() |
9
1
Kryo网站有关于 projects in production using Kryo |